diff --git a/InvenTree/config_template.yaml b/InvenTree/config_template.yaml
index 1e51863a68..8427c6e737 100644
--- a/InvenTree/config_template.yaml
+++ b/InvenTree/config_template.yaml
@@ -58,14 +58,6 @@ database:
# Use the environment variable INVENTREE_DEBUG
debug: True
-# Set to False to disable the admin interface (default = True)
-# Or, use the environment variable INVENTREE_ADMIN_ENABLED
-#admin_enabled: True
-
-# Set the admin URL (default is 'admin')
-# Or, use the environment variable INVENTREE_ADMIN_URL
-#admin_url: 'admin'
-
# Set enabled frontends
# Use the environment variable INVENTREE_CLASSIC_FRONTEND
# classic_frontend: True
diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po
index fa3d187400..24e2a04002 100644
--- a/InvenTree/locale/cs/LC_MESSAGES/django.po
+++ b/InvenTree/locale/cs/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:26\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API endpoint nebyl nalezen"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Uživatel nemá právo zobrazit tento model"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Není k dispozici žádná hodnota"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Podrobnosti o chybě lze nalézt v panelu administrace"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Zadejte datum"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Zadejte datum"
msgid "Notes"
msgstr "Poznámky"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Hodnota '{name}' neodpovídá formátu vzoru"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Poskytnutá hodnota neodpovídá požadovanému vzoru: "
@@ -103,99 +98,99 @@ msgstr "Potvrďte nové heslo"
msgid "Old password"
msgstr "Původní heslo"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Email (znovu)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Potvrzení emailové adresy"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Pokaždé musíte zadat stejný email."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Zadaná primární e-mailová adresa je neplatná."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Zadaná e-mailová doména není povolena."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Vyplněno neplatné množství"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Nevyplněné výrobní číslo"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Duplicitní výrobní číslo"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Neplatný rozsah skupiny: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Rozsah skupiny {g} překračuje povolené množství ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Neplatná sekvence skupiny: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Nenalezena žádná výrobní čísla"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Počet jedinečných sériových čísel ({s}) musí odpovídat množství ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Odstranit HTML tagy z této hodnoty"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Chyba spojení"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Server odpověděl s neplatným stavovým kódem"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Došlo k výjimce"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Server odpověděl s neplatnou hodnotou Content-Length"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Velikost obrázku je příliš velká"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Stahování obrázku překročilo maximální velikost"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Vzdálený server vrátil prázdnou odpověď"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Zadaná URL adresa není platný soubor obrázku"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr "E-mail"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "Metadata musí být objekt python dict"
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Metadata pluginu"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "Pole metadat JSON pro použití externími pluginy"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Nesprávně naformátovaný vzor"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Neznámý formát klíče"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Chybí požadovaný klíč"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Referenční pole nemůže být prázdné"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Referenční číslo musí odpovídat požadovanému vzoru"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Referenční číslo je příliš velké"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Chybějící soubor"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Chybějící externí odkaz"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Příloha"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Vyberte soubor k přiložení"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Vyberte soubor k přiložení"
msgid "Link"
msgstr "Odkaz"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Odkaz na externí URL"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Komentář"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Komentář k souboru"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Uživatel"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "datum přidání"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Název souboru nesmí být prázdný"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Neplatný adresář přílohy"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Název souboru obsahuje nepovolený znak '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Chybějící přípona souboru"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Příloha s tímto názvem již existuje"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Chyba při přejmenování souboru"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Neplatný výběr"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Neplatný výběr"
msgid "Name"
msgstr "Název"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Název"
msgid "Description"
msgstr "Popis"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Popis (volitelně)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "nadřazený"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Cesta"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Poznámky (volitelné)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Data čárového kódu"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Data čárového kódu třetí strany"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Hash čárového kódu"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Jedinečný hash dat čárového kódu"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Nalezen existující čárový kód"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Chyba serveru"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Server zaznamenal chybu."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Musí být platné číslo"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Měna"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Vyberte měnu z dostupných možností"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Název souboru"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Neplatná hodnota"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Datový soubor"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Vyberte datový soubor k nahrání"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Nepodporovaný typ souboru"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Soubor je příliš velký"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "V souboru nebyly nalezeny žádné sloupce"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "V souboru nebyly nalezeny žádné řádky s daty"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Nebyly zadány žádné řádky s daty"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Nebyly zadány žádné sloupce s daty"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Chybí povinný sloupec: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplicitní sloupec: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL souboru vzdáleného obrázku"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Stahování obrázků ze vzdálené URL není povoleno"
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Kontrola procesů na pozadí se nezdařila"
@@ -688,7 +683,7 @@ msgstr "Vráceno"
msgid "In Progress"
msgstr "Zpracovává se"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Vrácení peněz"
msgid "Reject"
msgstr "Odmítnout"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr "Neplatná fyzikální jednotka"
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Neplatný kód měny"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Přidaná hodnota nesmí být záporná"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Nesmí přesáhnout 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Neplatná hodnota překročení"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Upravit informace o uživateli"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Nastavit heslo"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Hesla se musí shodovat"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Zadáno špatné heslo"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Informace o systému"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "O InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Sestavení musí být zrušeno před odstraněním"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Neplatná volba nadřazeného sestavení"
msgid "Build Order Reference"
msgstr "Referenční číslo objednávky"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Příkaz sestavení pro který je toto sestavení přiděleno"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Referenční číslo prodejní objednávky"
msgid "SalesOrder to which this build is allocated"
msgstr "Prodejní příkaz, kterému je tato verze přidělena"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Stav sestavení"
msgid "Build status code"
msgstr "Stavový kód sestavení"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Cílové datum dokončení"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Cílové datum dokončení sestavení. Sestavení bude po tomto datu v prodlení."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Datum dokončení"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Uživatel, který vydal tento příkaz k sestavení"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Uživatel nebo skupina odpovědná za tento příkaz k sestavení"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Priorita sestavení"
msgid "Priority of this build order"
msgstr "Priorita tohoto příkazu k sestavení"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Příkaz k sestavení {build} byl dokončen"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Příkaz k sestavení byl dokončen"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Nebyl specifikováno žádný výstup sestavení"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Výstup sestavení je již dokončen"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Výstup sestavení neodpovídá příkazu sestavení"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "Množství musí být vyšší než nula"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr "Množství nemůže být větší než výstupní množství"
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Položka sestavení musí specifikovat výstup sestavení, protože hlavní díl je označen jako sledovatelný"
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Zabrané množství ({q}) nesmí překročit dostupné skladové množství ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Skladová položka je nadměrně zabrána"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Zabrané množství musí být větší než nula"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Množství musí být 1 pro zřetězený sklad"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Jméno společnosti"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Výchozí měna"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Stáhnout z URL"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Možné zakoupit"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Díly jsou zakoupitelné ve výchozím nastavení"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Prodejné"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Díly jsou prodejné ve výchozím nastavení"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Sledovatelné"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Díly jsou sledovatelné ve výchozím nastavení"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Nehmotné (virtuální)"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Díly jsou nehmotné (virtuální) ve výchozím nastavení"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr "Zobrazit Import v zobrazeních"
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Zobrazit související díly"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Zobrazit související díly pro díl"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr "Počáteční údaje zásob"
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr "Povolit vytvoření počátečního skladu při přidání nové části"
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Počáteční údaje dodavatele"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr "Povolit vytvoření počátečních dat dodavatele při přidávání nového dílu"
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Formát zobrazení jména dílu"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Formát pro zobrazení názvu dílu"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr "Výchozí ikona kategorie dílu"
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr "Výchozí ikona kategorie dílu (prázdné znamená bez ikony)"
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr "Minimální počet desetinných míst u cen"
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr "Minimální počet desetinných míst k zobrazení u cenových údajů"
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr "Maximální počet desetinných míst u cen"
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr "Maximální počet desetinných míst k zobrazení u cenových údajů"
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr "Použít ceny dodavatele"
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr "Přepsání historie nákupu"
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Velikost stránky"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Výchozí velikost stránky pro PDF reporty"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr "Povolit testovací reporty"
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr "Povolit generování zkušebních reportů"
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr "Připojit testovací reporty"
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr "Při tisku testovacího reportu, připojte kopii reportu k přidružené skladové položce"
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr "Sériová čísla pro skladové položky musí být globálně unikátní"
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr "Automaticky vyplnit sériová čísla"
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr "Automaticky vyplnit sériová čísla ve formulářích"
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr "Odstranit vyčerpané zásoby"
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr "Určuje výchozí chování, když je vyčerpána skladová položka"
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr "Formát data"
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Cena"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr "Id"
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr "Obrazek"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Kontaktní e-mailová adresa"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Společnost"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Základní díl"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Zvolte díl"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr "Zvolte díl"
msgid "Manufacturer"
msgstr "Výrobce"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Vyberte výrobce"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Vyberte výrobce"
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Číslo dílu výrobce"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr "Popis dílu výrobce"
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Výrobce dílu"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Název parametru"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Hodnota"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Hodnota parametru"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Jednotky"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr "Stáhnout obrázek z URL"
msgid "Delete image"
msgstr "Smazat obrázek"
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Zákazník"
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr "Činnost nebyla specifikována"
msgid "No matching action found"
msgstr "Nebyla nalezena odpovídající činnost"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Pro data čárového kódu nebyla nalezena shoda"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Pro data čárového kódu byla nalezena shoda"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/da/LC_MESSAGES/django.po b/InvenTree/locale/da/LC_MESSAGES/django.po
index 3808ce967f..d650e040d1 100644
--- a/InvenTree/locale/da/LC_MESSAGES/django.po
+++ b/InvenTree/locale/da/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Language: da_DK\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API endpoint ikke fundet"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Fejloplysninger kan findes i admin panelet"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Angiv dato"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Angiv dato"
msgid "Notes"
msgstr "Bemærkninger"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Værdi '{name}' vises ikke i mønsterformat"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Den angivne værdi matcher ikke det påkrævede mønster: "
@@ -103,99 +98,99 @@ msgstr "Bekræft ny adgangskode"
msgid "Old password"
msgstr "Gammel adgangskode"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "E-mail (igen)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Bekræftelse af e-mailadresse"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Du skal indtaste den samme e-mail hver gang."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Den indtastede email adresse er ikke gyldig."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Det angivne e-mail domæne er ikke godkendt."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Ugyldigt antal angivet"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Serienummer streng er tom"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Duplikeret serienummer"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ugyldigt gruppe-interval: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Gruppeinterval {g} overstiger det tilladte antal ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ugyldig gruppesekvens: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Ingen serienumre fundet"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Antal unikke serienumre ({s}) skal matche antal ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Fjern HTML-tags fra denne værdi"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Forbindelsesfejl"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Serveren svarede med ugyldig statuskode"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Der opstod en fejl"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Serveren svarede med ugyldig Content-Length værdi"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Billedstørrelsen er for stor"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Billeddownload overskred maksimumstørrelsen"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Fjernserver returnerede tomt svar"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Angivet URL er ikke en gyldig billedfil"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Forkert formateret mønster"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Ukendt formatnøgle angivet"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Mangler nødvendig formatnøgle"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Referencefelt må ikke være tomt"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Reference skal matche det påkrævede mønster"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Referencenummer er for stort"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Manglende fil"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Manglende eksternt link"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Vedhæftning"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Vælg fil, der skal vedhæftes"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Vælg fil, der skal vedhæftes"
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Link til ekstern URL"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Bruger"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "dato for upload"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Filnavn må ikke være tomt"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Ugyldig vedhæftningsmappe"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Filnavn indeholder ugyldigt tegn '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Filnavn mangler filtype"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Vedhæftning med dette filnavn findes allerede"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Fejl ved omdøbning af fil"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Ugyldigt valg"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Ugyldigt valg"
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Navn"
msgid "Description"
msgstr "Beskrivelse"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Beskrivelse (valgfri)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "overordnet"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Sti"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Stregkode Data"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Tredjeparts stregkode data"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Stregkode Hash"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Unik hash af stregkode data"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Eksisterende stregkode fundet"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Serverfejl"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "En fejl blev logget af serveren."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Skal være et gyldigt tal"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Filnavn"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Ugyldig værdi"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Datafil"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Vælg datafilen til upload"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Filtype ikke understøttet"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Filen er for stor"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Ingen kolonner fundet i fil"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Ingen datarækker fundet i fil"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Ingen data-rækker angivet"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Ingen data-kolonner angivet"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Mangler påkrævet kolonne: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplikeret kolonne: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL til ekstern billedfil"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Download af billeder fra ekstern URL er ikke aktiveret"
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Kontrol af baggrundstjeneste mislykkedes"
@@ -688,7 +683,7 @@ msgstr "Returneret"
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Ikke en gyldig valutakode"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Overskud må ikke være negativ"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Overskuddet må ikke overstige 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Ugyldig værdi for overskud"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Rediger brugerinformation"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Vælg adgangskode"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "De indtastede adgangskoder skal være ens"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Forkert adgangskode indtastet"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Systemoplysninger"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Om InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Produktion skal anulleres, før den kan slettes"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Ugyldigt valg for overordnet produktion"
msgid "Build Order Reference"
msgstr "Produktionsordre reference"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Produktionsordre som er tildelt denne produktion"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Produktionsordre som er tildelt denne produktion"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Salgsordrereference"
msgid "SalesOrder to which this build is allocated"
msgstr "Salgsordre, som er tildelt denne produktion"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Produktions Status"
msgid "Build status code"
msgstr "Produktions statuskode"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Batch Kode"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Batch kode til dette produktions output"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Projekteret afslutningsdato"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Dato for afslutning"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Bruger som udstedte denne byggeordre"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Bruger eller gruppe ansvarlig for denne byggeordre"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Bygge Prioritet"
msgid "Priority of this build order"
msgstr "Prioritet af denne byggeordre"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Bygningsordre {build} er fuldført"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "En byggeordre er fuldført"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN skal matche regex mønster {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index e60ce7b5cf..d533a534ad 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-15 16:33\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API-Endpunkt nicht gefunden"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Benutzer hat keine Berechtigung, dieses Modell anzuzeigen"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Kein Wert angegeben"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Konnte {original} nicht in {unit} umwandeln"
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Fehlerdetails finden Sie im Admin-Panel"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Datum eingeben"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Datum eingeben"
msgid "Notes"
msgstr "Notizen"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Wert '{name}' hält das Musterformat nicht ein"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Angegebener Wert entspricht nicht dem benötigten Muster: "
@@ -103,99 +98,99 @@ msgstr "Neues Passwort bestätigen"
msgid "Old password"
msgstr "Altes Passwort"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "E-Mail (nochmal)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Bestätigung der E-Mail Adresse"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "E-Mail Adressen müssen übereinstimmen."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Die angegebene primäre E-Mail-Adresse ist ungültig."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "Registrierung ist deaktiviert."
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Keine Seriennummer angegeben"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Duplizierter Seriennummer"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ungültiger Gruppenbereich: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Gruppenbereich {g} überschreitet die zulässige Menge ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ungültige Gruppensequenz: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Keine Seriennummern gefunden"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Entferne HTML-Tags von diesem Wert"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Verbindungsfehler"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Server antwortete mit ungültigem Statuscode"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Ausnahme aufgetreten"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Server antwortete mit ungültigem Wert für die Inhaltslänge"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Bild ist zu groß"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Bilddownload überschreitet maximale Größe"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Remote-Server gab leere Antwort zurück"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
@@ -211,64 +206,64 @@ msgstr "[{site.name}] In App einloggen"
msgid "Email"
msgstr "Email"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "Metadaten müssen ein Python-Dict Objekt sein"
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Plugin Metadaten"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON-Metadatenfeld, für die Verwendung durch externe Plugins"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Falsch formatiertes Muster"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Unbekannter Formatschlüssel angegeben"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Erforderlicher Formatschlüssel fehlt"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Referenz-Feld darf nicht leer sein"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Referenz muss erforderlichem Muster entsprechen"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Referenznummer ist zu groß"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Fehlende Datei"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Fehlender externer Link"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Anhang"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Datei zum Anhängen auswählen"
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Benutzer"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "Hochladedatum"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Dateiname darf nicht leer sein"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Ungültiges Verzeichnis für Anhang"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Dateiname enthält ungültiges Zeichen '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Dateiendung fehlt"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Anhang mit diesem Dateinamen bereits vorhanden"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Fehler beim Umbenennen"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Ungültige Auswahl"
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Name"
msgid "Description"
msgstr "Beschreibung"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Beschreibung (optional)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "Eltern"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Pfad"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Markdown Notizen (optional)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Barcode-Daten"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Drittanbieter-Barcode-Daten"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Barcode-Hash"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Eindeutiger Hash der Barcode-Daten"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Bestehender Barcode gefunden"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Serverfehler"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Ein Fehler wurde vom Server protokolliert."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Währung"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Währung aus verfügbaren Optionen auswählen"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Dateiname"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Ungültiger Wert"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Datendatei"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Neue Datei zum Hochladen auswählen"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Nicht unterstütztes Dateiformat"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Datei ist zu groß"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Keine Spalten in der Datei gefunden"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Keine Datensätze in der Datei gefunden"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Keine Zeilen ausgewählt"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Keine Spalten angegeben"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Erforderliche Spalte '{name}' fehlt"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Doppelte Spalte: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL der Remote-Bilddatei"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert"
@@ -639,7 +634,7 @@ msgstr "Chinesisch (Vereinfacht)"
msgid "Chinese (Traditional)"
msgstr "Chinesisch (Traditionell)"
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen"
@@ -688,7 +683,7 @@ msgstr "Zurückgegeben"
msgid "In Progress"
msgstr "In Bearbeitung"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Rückerstattung"
msgid "Reject"
msgstr "Ablehnen"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr "Ungültige physikalische Einheit"
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Kein gültiger Währungscode"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Überschuss-Wert darf nicht negativ sein"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Überschuss darf 100% nicht überschreiten"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Ungültiger Wert für Ausschuss"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Benutzerinformationen bearbeiten"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Passwort setzen"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Passwörter stimmen nicht überein"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Falsches Passwort angegeben"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Systeminformationen"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Über InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "Verbrauchsmaterial"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "Verbrauchsmaterial"
msgid "Optional"
msgstr "Optional"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr "Nachverfolgt"
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Zugeordnet"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Ungültige Wahl für übergeordneten Bauauftrag"
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Auftrag Referenz"
msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Bauauftrags-Status"
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Losnummer"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "geplantes Fertigstellungsdatum"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Benutzer oder Gruppe verantwortlich für diesen Bauauftrag"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Bauauftrags-Priorität"
msgid "Priority of this build order"
msgstr "Priorität dieses Bauauftrags"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "Projektcode"
msgid "Project code for this build order"
msgstr "Projektcode für diesen Auftrag"
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Bauauftrag {build} wurde fertiggestellt"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Ein Bauauftrag wurde fertiggestellt"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Endprodukt bereits hergstellt"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr "Menge kann nicht größer als die Ausgangsmenge sein"
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr "Objekt bauen"
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr "Objekt bauen"
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr "Objekt bauen"
msgid "Quantity"
msgstr "Anzahl"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr "Erforderliche Menge für Auftrag"
-#: build/models.py:1354
+#: build/models.py:1371
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:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein"
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein"
msgid "Stock Item"
msgstr "Lagerartikel"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Quell-Lagerartikel"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Ziel-Lagerartikel"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Endprodukt"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "Endprodukt stimmt nicht mit übergeordnetem Bauauftrag überein"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "Endprodukt entspricht nicht dem Teil des Bauauftrags"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Dieses Endprodukt wurde bereits fertiggestellt"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Ganzzahl für verfolgbare Teile erforderlich"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Seriennummer"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Seriennummer für dieses Endprodukt eingeben"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Seriennummern automatisch zuweisen"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "Eine Liste von Endprodukten muss angegeben werden"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "Eine Liste von Endprodukten muss angegeben werden"
msgid "Location"
msgstr "Lagerort"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr "Lagerort für ausgemusterte Ausgänge"
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr "Zuteilungen verwerfen"
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Bestandszuteilung für ausgemusterte Endprodukte verwerfen"
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr "Grund für das Verwerfen des Bauauftrages/der Bauaufträge"
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "Lagerort für fertige Endprodukte"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr "Lagerort für fertige Endprodukte"
msgid "Status"
msgstr "Status"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "Unvollständige Zuweisung akzeptieren"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Endprodukte fertigstellen, auch wenn Bestand nicht fertig zugewiesen wurde"
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr "Zugewiesenen Bestand entfernen"
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Abzug aller Lagerbestände, die diesem Build bereits zugewiesen wurden"
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "Unfertige Endprodukte entfernen"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr "Lösche alle noch nicht abgeschlossenen Endprodukte"
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr "Nicht erlaubt"
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr "Als von diesem Bauauftrag verbraucht setzen"
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr "Bestandszuordnung vor dem Abschluss dieses Bauauftrags freigeben"
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr "Überbelegter Lagerbestand"
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Wie sollen zusätzliche Lagerbestandteile, die dem Bauauftrag zugewiesen wurden, behandelt werden"
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr "Der Bestand einiger Lagerartikel ist überbelegt"
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "Nicht zugewiesene akzeptieren"
-#: build/serializers.py:653
+#: build/serializers.py:657
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:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Unvollständig Zuweisung akzeptieren"
-#: build/serializers.py:669
+#: build/serializers.py:673
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:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "Bauauftrag hat unvollständige Aufbauten"
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "Endprodukt"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen"
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "Teil muss auf Lager sein"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Verfügbare Menge ({q}) überschritten"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "Dieser Lagerbestand wurde bereits diesem Endprodukt zugewiesen"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "Zuweisungen müssen angegeben werden"
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Lagerort, von dem Teile bezogen werden sollen (leer lassen, um sie von jedem Lagerort zu nehmen)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Lagerort ausschließen"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Lagerartikel vom ausgewählten Ort ausschließen"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "Wechselbares Lagerbestand"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Lagerartikel an mehreren Standorten können austauschbar verwendet werden"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Ersatzbestand"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "Zuordnung von Ersatzteilen erlauben"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr "Optionale Positionen"
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr "Optionale Stücklisten-Positionen dem Bauauftrag hinzufügen"
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "Bestand für Bauauftrag erforderlich"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr "Überfälliger Bauauftrag"
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr "Bauauftrag {bo} ist jetzt überfällig"
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr "Fertiggestellte Endprodukte"
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr "Ausgangs-Lager"
msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Ziel-Lager"
@@ -2014,1372 +2013,1372 @@ msgstr "Aktualisiert"
msgid "Timestamp of last update"
msgstr "Zeitstempel der letzten Aktualisierung"
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr "Eindeutiger Projektcode"
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr "Projektbeschreibung"
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr "Einstellungs-Wert"
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr "Wert ist keine gültige Option"
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr "Wahrheitswert erforderlich"
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "Schlüsseltext muss eindeutig sein"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Keine Gruppe"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr "Eine leere Domain ist nicht erlaubt."
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Ungültiger Domainname: {domain}"
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr "Kein Plugin"
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Neustart erforderlich"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert"
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr "Name der Serverinstanz"
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr "Kurze Beschreibung der Instanz"
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr "Name der Instanz verwenden"
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr "Den Namen der Instanz in der Titelleiste verwenden"
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr "Anzeige von `Über` einschränken"
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr "Zeige das `Über` Fenster nur Administratoren"
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Firmenname"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "interner Firmenname"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "Basis-URL"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "Basis-URL für dieses Instanz"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Standardwährung"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr "Wählen Sie die Basiswährung für Preisberechnungen aus"
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr "Währungsaktualisierungsintervall"
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "Tage"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Von URL herunterladen"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr "Download-Größenlimit"
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr "Maximal zulässige Größe für heruntergeladene Bilder"
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr "Benutzer-Agent zum Herunterladen von Daten"
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr "Überschreiben des Benutzer-Agenten, der verwendet wird, um Bilder und Dateien von externer Servern herunterzuladen (leer für die Standardeinstellung)"
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Bestätigung verpflichtend"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Eine ausdrückliche Benutzerbestätigung für bestimmte Aktionen erfordern."
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr "Baumtiefe"
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr "Standard Ebene für Baumansicht. Tiefere Ebenen können bei Bedarf nachgeladen werden."
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr "Prüfungsintervall aktualisieren"
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr "Wie oft soll nach Updates gesucht werden? (auf 0 setzen zum Deaktivieren)"
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Automatische Sicherung"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Automatische Sicherung der Datenbank- und Mediendateien aktivieren"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Intervall für automatische Sicherung"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr "Anzahl der Tage zwischen automatischen Sicherungen"
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr "Aufgabenlöschinterval"
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr "Ergebnisse der Hintergrundaufgabe werden nach der angegebenen Anzahl von Tagen gelöscht"
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr "Löschintervall für Fehlerprotokolle"
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr "Fehlerprotokolle werden nach der angegebenen Anzahl von Tagen gelöscht"
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr "Löschintervall für Benachrichtigungen"
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr "Benutzerbenachrichtigungen werden nach der angegebenen Anzahl von Tagen gelöscht"
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Bacode-Feature verwenden"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr "Barcode-Eingabeverzögerung"
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr "Verzögerungszeit bei Barcode-Eingabe"
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr "Barcode Webcam-Unterstützung"
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr "Barcode-Scannen über Webcam im Browser erlauben"
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr "Artikelrevisionen"
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr "Revisions-Feld für Artikel aktivieren"
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr "RegEx Muster für die Zuordnung von Teil-IPN"
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "Ändern von IPN erlaubt"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt"
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr "Teil-Stückliste kopieren"
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird "
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr "Teil-Parameter kopieren"
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr "Teil-Testdaten kopieren"
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr "Kategorie-Parametervorlage kopieren"
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Vorlage"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Baugruppe"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Komponente"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Kaufbar"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Verkäuflich"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Nachverfolgbar"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Virtuell"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Teile sind grundsätzlich virtuell"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr "Import in Ansichten anzeigen"
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr "Importassistent in einigen Teil-Ansichten anzeigen"
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Verwandte Teile anzeigen"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Verwandte Teile eines Teils anzeigen"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr "Initialer Lagerbestand"
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr "Erstellen von Lagerbestand beim Hinzufügen eines neuen Teils erlauben"
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Initiale Lieferantendaten"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr "Erstellen von Lieferantendaten beim Hinzufügen eines neuen Teils erlauben"
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Anzeigeformat für Teilenamen"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Format für den Namen eines Teiles"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr "Standardsymbol der Teilkategorie"
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr "Standardsymbol der Teilkategorie (leer bedeutet kein Symbol)"
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr "Parameter Einheiten durchsetzen"
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr "Wenn Einheiten angegeben werden, müssen die Parameterwerte mit den angegebenen Einheiten übereinstimmen"
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr "Dezimalstellen für minimalen Preis"
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr "Mindestanzahl der Dezimalstellen bei der Darstellung der Preisdaten"
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr "Dezimalstellen für maximalen Preis"
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr "Maximale Anzahl der Dezimalstellen bei der Darstellung der Preisdaten"
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr "Zulieferer-Preise verwenden"
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr "Lieferanten-Staffelpreise in die Gesamt-Preisberechnungen einbeziehen"
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr "Kaufverlauf überschreiben"
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr "Historische Bestellungspreise überschreiben die Lieferanten-Staffelpreise"
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr "Lagerartikel-Preis verwenden"
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr "Preise aus manuell eingegebenen Lagerdaten für Preisberechnungen verwenden"
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr "Lagerartikelpreis Alter"
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr "Lagerartikel, die älter als diese Anzahl an Tagen sind, von der Preisberechnung ausschließen"
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr "Variantenpreise verwenden"
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr "Variantenpreise in die Gesamt-Preisberechnungen einbeziehen"
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr "Nur aktive Varianten"
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr "Nur aktive Variantenteile zur Berechnung der Variantenbepreisung verwenden"
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr "Intervall für Neuberechnung von Preisen"
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr "Anzahl der Tage bis die Teile-Preisberechnungen automatisch aktualisiert werden"
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Interne Preise"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr "Interne Preise für Teile aktivieren"
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr "Interne Preisüberschreibung"
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr "Falls verfügbar, überschreiben interne Preise Preispannenberechnungen"
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Labeldruck aktivieren"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Labeldruck über die Website aktivieren"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "Label Bild DPI"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr "DPI-Auflösung bei der Erstellung von Bilddateien für Etikettendruck-Plugins"
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr "Berichte aktivieren"
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr "Berichterstellung aktivieren"
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Entwickler-Modus"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr "Berichte im Entwickler-Modus generieren (als HTML)"
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Seitengröße"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Standardseitenformat für PDF-Bericht"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr "Testberichte aktivieren"
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr "Erstellung von Test-Berichten aktivieren"
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr "Testberichte anhängen"
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr "Beim Drucken eines Testberichts dem zugehörigen Lagerbestand eine Kopie des Testberichts beifügen"
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr "Global einzigartige Seriennummern"
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr "Seriennummern für Lagerartikel müssen global eindeutig sein"
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr "Seriennummern automatisch ausfüllen"
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr "Seriennummern in Formularen automatisch ausfüllen"
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr "Erschöpften Lagerartikel löschen"
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr "Legt das Standardverhalten fest, wenn ein Lagerartikel erschöpft ist"
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr "Losnummer Vorlage"
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr "Vorlage für die Generierung von Standard-Losnummern für Lagerbestände"
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr "Bestands-Ablauf"
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr "Ablaufen von Bestand ermöglichen"
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr "Abgelaufenen Bestand verkaufen"
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr "Verkauf von abgelaufenem Bestand erlaubt"
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr "Bestands-Stehzeit"
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen"
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr "Abgelaufenen Bestand verbauen"
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr "Verbauen von abgelaufenen Bestand erlaubt"
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr "Bestands-Eigentümerkontrolle"
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr "Standardsymbol für Lagerort"
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr "Standardsymbol für Lagerstandort (leer bedeutet kein Symbol)"
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr "Zeige installierte Lagerartikel"
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr "Anzeige der installierten Lagerartikel in Bestandstabellen"
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr "Bauauftragsreferenz-Muster"
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bauaufträge"
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr "Rücksendungen aktivieren"
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr "Aktivieren der Rücksendung-Funktion in der Benutzeroberfläche"
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr "Referenz Muster für Rücksendungen"
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Rücksendungen"
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr "Abgeschlossene Rücksendungen bearbeiten"
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr "Bearbeitung von Rücksendungen nach Abschluss erlauben"
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr "Auftragsreferenz-Muster"
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Aufträge"
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr "Auftrag Standardsendung"
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr "Erstelle eine Standardsendung für Aufträge"
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr "Abgeschlossene Verkaufsaufträge bearbeiten"
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Bearbeitung von Verkaufsaufträgen nach Versand oder Abschluss erlauben"
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr "Bestellungsreferenz-Muster"
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bestellungen"
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr "Abgeschlossene Einkaufsaufträge bearbeiten"
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Bearbeitung von Einkaufsaufträgen nach Versand oder Abschluss erlauben"
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr "Passwort vergessen aktivieren"
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren"
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr "Registrierung erlauben"
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren"
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "SSO aktivieren"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "SSO auf den Anmeldeseiten aktivieren"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr "SSO Selbstregistrierung aktivieren"
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Selbstregistrierung über SSO für Benutzer auf den Anmeldeseiten aktivieren"
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Email-Adresse erforderlich"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben"
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr "SSO-Benutzer automatisch ausfüllen"
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen"
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "E-Mail zweimal"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen"
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Passwort zweimal"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen"
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Erlaubte Domains"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Anmeldung auf bestimmte Domänen beschränken (kommagetrennt, beginnend mit @)"
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr "Gruppe bei Registrierung"
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden"
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr "MFA erzwingen"
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden."
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr "Plugins beim Start prüfen"
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren"
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr "URL-Integration aktivieren"
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr "Plugins zum Hinzufügen von URLs aktivieren"
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr "Navigations-Integration aktivieren"
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr "Plugins zur Integration in die Navigation aktivieren"
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr "App-Integration aktivieren"
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr "Plugins zum Hinzufügen von Apps aktivieren"
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr "Terminplan-Integration aktivieren"
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr "Geplante Aufgaben aktivieren"
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr "Ereignis-Integration aktivieren"
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren"
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr "Projektcodes aktivieren"
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr "Aktiviere Projektcodes für die Verfolgung von Projekten"
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr "Inventurfunktionen"
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr "Inventur-Funktionen zur Aufzeichnung von Lagerbeständen und zur Berechnung des Lagerwerts aktivieren"
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr "Externe Standorte ausschließen"
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Lagerartikeln in externen Standorten in der Berechnungen zur Bestandsaufnahme ausschließen"
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr "Automatische Inventur-Periode"
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr "Anzahl der Tage zwischen automatischen Bestandsaufnahmen (zum Deaktivieren auf Null setzen)"
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr "Löschintervall für Berichte"
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "Inventurberichte werden nach der angegebenen Anzahl von Tagen gelöscht"
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr "Inaktive Teile ausblenden"
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Ausblenden inaktiver Teile in den auf der Startseite angezeigten Ergebnissen"
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr "Abonnierte Teile anzeigen"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr "Zeige abonnierte Teile auf der Startseite"
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "Abonnierte Kategorien anzeigen"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr "Zeige abonnierte Teilkategorien auf der Startseite"
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Neueste Teile anzeigen"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Zeige neueste Teile auf der Startseite"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr "Nicht validierte Stücklisten anzeigen"
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite"
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr "Neueste Bestandänderungen anzeigen"
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite"
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Niedrigen Bestand anzeigen"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Zeige geringen Bestand auf der Startseite"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr "Lerren Bestand anzeigen"
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite"
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Benötigten Bestand anzeigen"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr "Zeige Bestand für Bauaufträge auf der Startseite"
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr "Abgelaufenen Bestand anzeigen"
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr "Zeige abgelaufene Lagerbestände auf der Startseite"
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr "Alten Bestand anzeigen"
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr "Zeige überfällige Lagerartikel auf der Startseite"
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr "Ausstehende Bauaufträge anzeigen"
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr "Zeige ausstehende Bauaufträge auf der Startseite"
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr "Zeige überfällige Bauaufträge"
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr "Zeige überfällige Bauaufträge auf der Startseite"
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr "Ausstehende POs anzeigen"
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr "Zeige ausstehende POs auf der Startseite"
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr "Überfällige POs anzeigen"
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr "Zeige überfällige POs auf der Startseite"
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr "Ausstehende SOs anzeigen"
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr "Zeige ausstehende SOs auf der Startseite"
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr "Überfällige SOs anzeigen"
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr "Zeige überfällige SOs auf der Startseite"
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr "Ausstehende Versandaufträge anzeigen"
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr "Ausstehende Versandaufträge auf der Startseite anzeigen"
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr "Zeige Neuigkeiten"
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr "Neuigkeiten auf der Startseite anzeigen"
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr "Label inline anzeigen"
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr "Standard-Etikettendrucker"
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr "Einen standardmäßig ausgewählten Etikettendrucker konfigurieren"
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr "Berichte inline anzeigen"
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr "Teile suchen"
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr "Teile in der Suchvorschau anzeigen"
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr "Zulieferteile durchsuchen"
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr "Zuliefererteile in der Suchvorschau anzeigen"
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr "Herstellerteile durchsuchen"
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr "Herstellerteile in der Suchvorschau anzeigen"
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr "Inaktive Teile ausblenden"
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr "Inaktive Teile in der Suchvorschau ausblenden"
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr "Kategorien durchsuchen"
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr "Teilekategorien in der Suchvorschau anzeigen"
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr "Bestand durchsuchen"
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr "Lagerartikel in Suchvorschau anzeigen"
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr "Nicht verfügbare Artikel ausblenden"
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen"
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr "Lagerorte durchsuchen"
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr "Lagerorte in Suchvorschau anzeigen"
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr "Firmen durchsuchen"
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr "Firmen in der Suchvorschau anzeigen"
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr "Bauaufträge durchsuchen"
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr "Bauaufträge in der Suchvorschau anzeigen"
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr "Bestellungen durchsuchen"
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr "Bestellungen in der Suchvorschau anzeigen"
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr "Inaktive Bestellungen ausblenden"
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden"
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr "Aufträge durchsuchen"
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr "Aufträge in der Suchvorschau anzeigen"
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr "Inaktive Aufträge ausblenden"
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr "Inaktive Aufträge in der Suchvorschau ausblenden"
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr "Suche nach Rücksendungen"
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr "Rücksendungen in der Suchvorschau anzeigen"
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr "Inaktive Rücksendungen ausblenden"
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr "Inaktive Rücksendungen in der Suchvorschau ausblenden"
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr "Anzahl Suchergebnisse"
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen"
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr "Regex Suche"
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr "Reguläre Ausdrücke in Suchabfragen aktivieren"
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr "Ganzes Wort suchen"
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr "Suchabfragen liefern Ergebnisse für ganze Wortkombinationen"
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "zeige Bestand in Eingabemasken"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr "Esc-Taste schließt Formulare"
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr "Benutze die Esc-Taste, um Formulare zu schließen"
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr "Fixierter Navigationsleiste"
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren"
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr "Datumsformat"
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr "Bevorzugtes Format für die Anzeige von Daten"
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Teilzeitplanung"
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr "Zeige Zeitplanung für Teile"
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Inventur"
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "Zeigt Inventur-Informationen an (falls die Inventurfunktion aktiviert ist)"
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr "Zeichenkettenlänge in Tabellen"
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr "Maximale Länge der Zeichenketten, die in Tabellenansichten angezeigt werden"
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr "Standardvorlage für Teilebeschriftung"
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr "Lagerartikel-Standardvorlage"
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr "Die Lagerartikel-Etikettenvorlage soll automatisch ausgewählt werden"
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Preis"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr "Endpunkt"
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr "Endpunkt, an dem dieser Webhook empfangen wird"
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr "Name für diesen Webhook"
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr "Name für diesen Webhook"
msgid "Active"
msgstr "Aktiv"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr "Ist dieser Webhook aktiv"
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr "Token"
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr "Token für Zugang"
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr "Geheimnis"
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr "Shared Secret für HMAC"
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr "Nachrichten-ID"
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr "Eindeutige Kennung für diese Nachricht"
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr "Host"
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr "Host von dem diese Nachricht empfangen wurde"
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr "Kopfzeile"
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr "Header dieser Nachricht"
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr "Body"
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr "Body dieser Nachricht"
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr "Endpunkt, über den diese Nachricht empfangen wurde"
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr "Bearbeitet"
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?"
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr "ID"
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Titel"
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr "Veröffentlicht"
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "Autor"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Zusammenfassung"
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr "Gelesen"
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr "Wurde diese Nachricht gelesen?"
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr "Wurde diese Nachricht gelesen?"
msgid "Image"
msgstr "Bild"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr "Bilddatei"
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr "Einheitsname muss eine gültige Kennung sein"
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr "Einheitsname"
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Symbol"
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr "Optionales Einheitssymbol"
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definition"
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr "Einheitsdefinition"
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Neue {verbose_name}"
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr "Eine neue Bestellung wurde erstellt und Ihnen zugewiesen"
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr "Artikel erhalten"
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr "Artikel wurden aus einer Bestellung erhalten"
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr "Artikel wurden aus einer Rücksendung erhalten"
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr "Fehler in Plugin aufgetreten"
@@ -3572,7 +3571,7 @@ msgstr "Felder zuteilen fehlgeschlagen"
msgid "Parts imported"
msgstr "Teile importiert"
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Kontakt-Email"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "Produziert diese Firma Teile?"
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Firma"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr "Firma auswählen"
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr "Adresstitel"
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr "Titel zur Beschreibung des Adresseintrages"
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr "Primäre Adresse"
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr "Als primäre Adresse festlegen"
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr "Linie 1"
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr "Adresszeile 1"
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr "Linie 2"
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr "Adresszeile 2"
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr "Postleitzahl"
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr "Stadt/Region"
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr "Postleitzahl Stadt/Region"
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr "Staat/Provinz"
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr "Bundesland"
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr "Land"
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr "Adresse Land"
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr "Kurierversandnotizen"
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr "Notizen für Versandkurier"
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr "Interne Versandnotizen"
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr "Versandnotizen für interne Verwendung"
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr "Link zu Adressinformationen (extern)"
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Basisteil"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Teil auswählen"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr "Teil auswählen"
msgid "Manufacturer"
msgstr "Hersteller"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Hersteller auswählen"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Hersteller auswählen"
msgid "MPN"
msgstr "MPN"
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Hersteller-Teilenummer"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr "Externe URL für das Herstellerteil"
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr "Teilbeschreibung des Herstellers"
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Herstellerteil"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Parametername"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Wert"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Einheiten"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Parametereinheit"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr "Packeinheiten müssen mit den Basisteileinheiten kompatibel sein"
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr "Packeinheiten müssen größer als Null sein"
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
msgid "Supplier"
msgstr "Zulieferer"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Zulieferer auswählen"
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "Herstellerteil auswählen"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr "Teil-URL des Zulieferers"
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Notiz"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr "Verpackungen"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr "Teile-Verpackungen"
msgid "Pack Quantity"
msgstr "Packmenge"
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Gesamtmenge, die in einer einzelnen Packung geliefert wird. Für Einzelstücke leer lassen."
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr "Vielfache"
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr "Mehrere bestellen"
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr "Verfügbare Menge von Lieferanten"
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr "Verfügbarkeit aktualisiert"
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr "Datum des letzten Updates der Verfügbarkeitsdaten"
@@ -4014,10 +4011,10 @@ msgstr "Bild von URL herunterladen"
msgid "Delete image"
msgstr "Bild löschen"
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Kunde"
msgid "Uses default currency"
msgstr "verwendet Standard-Währung"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr "Geschäftsadressen"
msgid "Add Address"
msgstr "Adresse hinzufügen"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Hersteller"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr "Keine Herstellerdaten verfügbar"
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr "Adressen"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr "Barcode mit Zuliefererteil verknüpfen"
msgid "Update Part Availability"
msgstr "Teilverfügbarkeit aktualisieren"
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr "Lagerartikel"
msgid "Supplier Part Pricing"
msgstr "Zuliefererteil Bepreisung"
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Neuer Zulieferer"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Neuer Hersteller"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Kunden"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Neuer Kunde"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Firmen"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Neue Firma"
@@ -4425,7 +4422,7 @@ msgstr "Label"
msgid "Label template file"
msgstr "Label-Vorlage-Datei"
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Aktiviert"
@@ -4449,7 +4446,7 @@ msgstr "Höhe [mm]"
msgid "Label height, specified in mm"
msgstr "Label-Höhe in mm"
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr "Dateinamen-Muster"
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Filter"
@@ -4481,7 +4478,7 @@ msgstr "QR-Code"
msgid "QR code"
msgstr "QR-Code"
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr "QR-Code"
msgid "Total Price"
msgstr "Gesamtpreis"
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr "Keine passende Bestellung gefunden"
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr "Keine passende Bestellung gefunden"
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr "Bestellung"
msgid "Return Order"
msgstr "Rücksendeauftrag"
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr "Unbekannt"
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr "Gesamtpreis für diese Bestellung"
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr "Auftragswährung"
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr "Währung für diesen Auftrag (leer lassen, um Firmenstandard zu verwenden)"
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr "Kontakt stimmt nicht mit der ausgewählten Firma überein"
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr "Auftragsbeschreibung (optional)"
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr "Projektcode für diesen Auftrag auswählen"
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr "Link auf externe Seite"
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Geplantes Lieferdatum für Auftrag."
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr "Erstellt von"
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind"
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr "Ansprechpartner für diesen Auftrag"
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr "Firmenadresse für diesen Auftrag"
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Bestell-Referenz"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr "Bestellungs-Status"
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr "Firma bei der die Teile bestellt werden"
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr "Zulieferer-Referenz"
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr "Zulieferer Bestellreferenz"
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr "Empfangen von"
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr "Aufgabedatum"
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr "Datum an dem die Bestellung aufgegeben wurde"
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr "Anzahl muss eine positive Zahl sein"
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr "Auftrag kann nicht abgeschlossen werden, da keine Teile zugewiesen wurden"
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr "Nur ein offener Auftrag kann als abgeschlossen markiert werden"
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind"
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt"
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Zieldatum für diesen Einzelposten (leer lassen, um das Zieldatum des Auftrags zu verwenden)"
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr "Kontext"
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr "Zusätzlicher Kontext für diese Zeile"
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr "Stückpreis"
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr "Lieferantenteil muss mit Lieferant übereinstimmen"
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr "gelöscht"
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr "Bestellung"
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr "Zuliefererteil"
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr "Zuliefererteil"
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?"
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr "Ein virtuelles Teil kann nicht einem Auftrag zugeordnet werden"
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr "Nur verkaufbare Teile können einem Auftrag zugewiesen werden"
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "Verkaufspreis"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr "Stückverkaufspreis"
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr "Versendete Menge"
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr "Versanddatum"
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr "Lieferdatum"
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr "Versanddatum"
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr "Kontrolliert von"
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr "Benutzer, der diese Sendung kontrolliert hat"
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Sendung"
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr "Sendungsnummer"
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr "Sendungsverfolgungsnummer"
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr "Informationen zur Sendungsverfolgung"
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr "Rechnungsnummer"
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr "Referenznummer für zugehörige Rechnung"
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr "Sendung wurde bereits versandt"
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr "Sendung hat keine zugewiesene Lagerartikel"
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr "Lagerartikel wurde nicht zugewiesen"
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen"
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr "Auftrag gehört nicht zu Sendung"
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr "Sendung gehört nicht zu Auftrag"
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr "Position"
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr "Sendungsnummer-Referenz"
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr "Position"
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr "Lagerartikel für Zuordnung auswählen"
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr "Empfangsdatum"
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr "Bestellung kann nicht verworfen werden"
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr "Erlaube das Schließen des Auftrags mit unvollständigen Positionen"
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr "Auftrag hat unvollständige Positionen"
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr "Der Auftrag ist nicht offen"
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr "Kaufpreiswährung"
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr "Zuliefererteil muss ausgewählt werden"
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr "Bestellung muss angegeben sein"
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr "Lieferant muss mit der Bestellung übereinstimmen"
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr "Die Bestellung muss mit dem Lieferant übereinstimmen"
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr "Position"
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr "Position stimmt nicht mit Kaufauftrag überein"
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr "Zielort für empfangene Teile auswählen"
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr "Losnummer für eingehende Lagerartikel"
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr "Seriennummern für eingehende Lagerartikel"
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "Barcode"
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr "Barcode ist bereits in Verwendung"
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr "Ganzzahl für verfolgbare Teile erforderlich"
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr "Positionen müssen angegeben werden"
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr "Ziel-Lagerort muss angegeben werden"
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr "Barcode muss eindeutig sein"
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr "Verkaufspreis-Währung"
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr "Keine Sendungsdetails angegeben"
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr "Position ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr "Anzahl muss positiv sein"
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr "Seriennummern zum Zuweisen eingeben"
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr "Sendung wurde bereits versandt"
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr "Sendung ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr "Folgende Serienummern konnten nicht gefunden werden"
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr "Folgende Seriennummern sind bereits zugewiesen"
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr "Überfällige Bestellung"
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "Bestellung {po} ist jetzt überfällig"
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr "Überfälliger Auftrag"
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "Auftrag {so} ist jetzt überfällig"
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr "Ausstehende Sendungen"
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Aktionen"
@@ -5434,47 +5431,47 @@ msgstr "Stückpreis für {part} auf {price} aktualisiert"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert"
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr "Teil-ID"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr "Name des Teils"
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr "Beschreibung des Teils"
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr "Version"
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr "Kategorie-ID"
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr "Kategoriename"
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr "Standard-Standortnummer"
@@ -5482,11 +5479,11 @@ msgstr "Standard-Standortnummer"
msgid "Default Supplier ID"
msgstr "Standard-Lieferantennummer"
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr "Variante von"
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "Minimaler Bestand"
@@ -5496,8 +5493,8 @@ msgstr "Minimaler Bestand"
msgid "In Stock"
msgstr "Auf Lager"
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr "Benutzt in"
msgid "Building"
msgstr "Im Bau"
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr "Minimale Kosten"
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr "Maximale Kosten"
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr "Eltern ID"
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr "Name des übergeordneten Teils"
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr "Pfad zur Kategorie"
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr "Pfad zur Kategorie"
msgid "Parts"
msgstr "Teile"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr "Stücklistenebene"
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr "Stücklisten-Position ID"
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr "Übergeordnete IPN"
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr "Teil IPN"
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Niedrigster Preis"
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr "Höchster Preis"
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr "Eingehende Bestellung"
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr "Ausgehender Auftrag"
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr "Lagerartikel produziert von Bauauftrag"
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr "Lagerartikel für Bauauftrag benötigt"
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr "Gültig"
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr "Gesamte Stückliste validieren"
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr "Diese Option muss ausgewählt werden"
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Standard-Lagerort"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Gesamtbestand"
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "Verfügbarer Bestand"
@@ -5616,7 +5613,7 @@ msgstr "Verfügbarer Bestand"
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
@@ -5662,62 +5659,62 @@ msgstr "Symbol (optional)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr "Sie können diese Teilekategorie nicht als strukturell festlegen, da ihr bereits Teile zugewiesen sind!"
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr "Ungültige Auswahl für übergeordnetes Teil"
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)"
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN muss zu Regex-Muster {pat} passen"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits"
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr "Teil mit diesem Namen, IPN und Revision existiert bereits."
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Strukturellen Teilekategorien können keine Teile zugewiesen werden!"
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr "Ist eine Vorlage"
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
msgid "Category"
msgstr "Kategorie"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr "Standard Zulieferer"
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr "Standard Zuliefererteil"
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr "Standard Ablaufzeit"
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils"
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Bestand"
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr "Maßeinheit für diesen Teil"
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?"
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr "Stückliste kontrolliert von"
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr "BOM Kontrolldatum"
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr "Benutzer, der für diesen Teil verantwortlich ist"
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr "Letzte Inventur"
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr "Währung für die Berechnung der Preise im Cache"
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr "Minimale Stücklisten Kosten"
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr "Minimale Kosten für Teile"
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr "Maximale Stücklisten Kosten"
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr "Maximale Kosten für Teile"
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr "Minimale Einkaufskosten"
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr "Minimale historische Kaufkosten"
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr "Maximale Einkaufskosten"
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr "Maximale historische Einkaufskosten"
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr "Minimaler interner Preis"
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr "Minimale Kosten basierend auf den internen Staffelpreisen"
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr "Maximaler interner Preis"
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr "Maximale Kosten basierend auf internen Preisstaffeln"
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr "Minimaler Lieferantenpreis"
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr "Mindestpreis für Teil von externen Lieferanten"
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr "Maximaler Lieferantenpreis"
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr "Maximaler Preis für Teil von externen Lieferanten"
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr "Minimale Variantenkosten"
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr "Berechnete minimale Kosten für Variantenteile"
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr "Maximale Variantenkosten"
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr "Berechnete maximale Kosten für Variantenteile"
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr "Berechnete Mindestkosten"
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr "Berechnete Maximalkosten"
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr "Mindestverkaufspreis"
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr "Mindestverkaufspreis basierend auf Staffelpreisen"
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr "Maximaler Verkaufspreis"
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr "Maximalverkaufspreis basierend auf Staffelpreisen"
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr "Mindestverkaufskosten"
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr "Minimaler historischer Verkaufspreis"
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr "Maximale Verkaufskosten"
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr "Maximaler historischer Verkaufspreis"
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr "Teil für die Inventur"
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr "Stückzahl"
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur"
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur"
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur"
msgid "Date"
msgstr "Datum"
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr "Datum der Inventur"
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr "Zusätzliche Notizen"
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr "Benutzer, der diese Inventur durchgeführt hat"
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr "Mindestbestandswert"
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr "Geschätzter Mindestwert des vorhandenen Bestands"
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr "Maximaler Bestandswert"
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr "Geschätzter Maximalwert des vorhandenen Bestands"
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr "Bericht"
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr "Inventur-Berichtsdatei (intern generiert)"
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr "Anzahl der Teile"
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden"
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr "Benutzer, der diesen Inventurbericht angefordert hat"
-#: part/models.py:3262
+#: part/models.py:3299
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:3279
+#: part/models.py:3316
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:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:3318
+#: part/models.py:3355
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:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:3324
+#: part/models.py:3361
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:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr "Checkbox-Parameter können keine Einheiten haben"
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr "Parameter-Beschreibung"
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr "Checkbox"
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr "Ist dieser Parameter eine Checkbox?"
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr "Auswahlmöglichkeiten"
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr "Ausgangsteil"
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr "Wert"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr "Teilnummer oder Teilname"
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr "Eindeutige Teil-ID"
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr "IPN-Wert des Teils"
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr "Stufe"
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr "Stücklistenebene"
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "Stücklisten-Position"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Diese Stücklisten-Position ist ein Verbrauchsartikel (sie wird nicht in Bauaufträgen verfolgt)"
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "überprüft"
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr "Diese Stücklistenposition wurde validiert"
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr "Wird vererbt"
-#: part/models.py:3855
+#: part/models.py:3900
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:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:3861
+#: part/models.py:3906
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:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr "Stücklisten Ersatzteile"
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr "Übergeordnete Stücklisten Position"
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr "Ersatzteil"
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr "Teil-Beziehung kann nicht zwischen einem Teil und sich selbst erstellt werden"
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr "Doppelte Beziehung existiert bereits"
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr "Kaufwährung dieses Lagerartikels"
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr "Originalteil"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr "Originalteil zum Duplizieren auswählen"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr "Bild kopieren"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr "Bild vom Originalteil kopieren"
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr "Stückliste vom Originalteil kopieren"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr "Parameter kopieren"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr "Parameterdaten vom Originalteil kopieren"
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr "Start-Bestandsmenge"
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Initiale Lagermenge für dieses Teil. Wenn die Menge null ist, wird kein Lagerbestand hinzugefügt."
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr "Initialer Lagerort"
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr "Lagerstandort für dieses Teil angeben"
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)"
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)"
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr "Hersteller-Teilenummer"
@@ -6378,190 +6375,190 @@ msgstr "Hersteller-Teilenummer"
msgid "Selected company is not a valid supplier"
msgstr "Ausgewählte Firma ist kein gültiger Lieferant"
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr "Ausgewählte Firma ist kein gültiger Hersteller"
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr "Herstellerteil mit dieser MPN existiert bereits"
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr "Lieferantenteil mit dieser SKU existiert bereits"
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr "Teil duplizieren"
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr "Initiale Daten von anderem Teil kopieren"
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr "Initialer Lagerbestand"
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr "Erstelle Teil mit Ausgangsbestand"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr "Lieferanteninformationen"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr "Lieferanteninformationen zu diesem Teil hinzufügen"
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr "Kategorieparameter kopieren"
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren"
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr "Inventurbericht auf ein bestimmtes Teil und alle Variantenteile beschränken"
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr "Inventurbericht auf eine bestimmte Teilekategorie und alle untergeordneten Kategorien beschränken"
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr "Inventurbericht auf einen bestimmten Lagerort und alle untergeordneten Lagerorte beschränken"
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr "Bericht generieren"
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr "Erstelle Berichtsdatei mit berechneten Inventurdaten"
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr "Teile aktualisieren"
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr "Angegebene Teile mit berechneten Inventurdaten aktualisieren"
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr "Inventur-Funktionalität ist nicht aktiviert"
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr "Aktualisieren"
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr "Preis für dieses Teil aktualisieren"
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr "Teil auswählen, von dem Stückliste kopiert wird"
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr "Bestehende Daten entfernen"
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen"
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr "Vererbtes einschließen"
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden"
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr "Ungültige Zeilen überspringen"
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen"
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr "Ersatzteile kopieren"
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren"
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr "Bestehende Stückliste löschen"
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen"
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr "Keine Teilspalte angegeben"
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr "Mehrere übereinstimmende Teile gefunden"
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr "Keine passenden Teile gefunden"
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr "Teil ist nicht als Komponente angelegt"
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr "Menge nicht angegeben"
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr "Ungültige Menge"
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr "Mindestens eine Stückliste-Position ist erforderlich"
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr "Gesamtstückzahl"
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr "Gesamt-Bestandswert min"
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr "Gesamt-Bestandswert max"
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr "Inventurbericht verfügbar"
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr "Ein neuer Inventurbericht steht zum Download zur Verfügung"
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr "Stückliste überprüfen"
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr "Stücklisten-Position hinzufügen"
@@ -6961,7 +6958,7 @@ msgstr "Zu Bauaufträgen zugeordnet"
msgid "Allocated to Sales Orders"
msgstr "Zur Bestellung zugeordnet"
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr "Herstellbar"
@@ -7219,11 +7216,11 @@ msgstr "Neue Teilevariante anlegen"
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr "Unbekannte Datenbank"
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
@@ -7261,20 +7258,19 @@ msgstr "Keine Aktion angegeben"
msgid "No matching action found"
msgstr "Keine passende Aktion gefunden"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr "Fehlende Barcode-Daten"
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Keine Treffer für Barcode"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Treffer für Barcode gefunden"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr "Barcode entspricht einem bereits vorhandenen Artikel"
@@ -7283,52 +7279,6 @@ msgstr "Barcode entspricht einem bereits vorhandenen Artikel"
msgid "No match found for provided value"
msgstr "Kein Treffer für angegebenen Wert gefunden"
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Labeldruck fehlgeschlagen"
@@ -7345,8 +7295,6 @@ msgstr "Bietet native Unterstützung für Barcodes"
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr "InvenTree Mitwirkende"
@@ -7384,7 +7332,7 @@ msgstr "Eingehender Webhook-URL für Slack"
msgid "URL that is used to send messages to a slack channel"
msgstr "URL, die verwendet wird, um Nachrichten an einen Slack-Kanal zu senden"
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr "Link öffnen"
@@ -7412,68 +7360,20 @@ msgstr "Debug-Modus"
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr "Name des Plugins"
msgid "Is the plugin active"
msgstr "Ist das Plugin aktiv"
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr "Installiert"
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr "Beispiel-Plugin"
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr "Integriertes Plugin"
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr "Plugin"
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr "Methode"
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr "Kein Autor gefunden"
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,35 +7514,31 @@ msgstr "Installation nicht bestätigt"
msgid "Either packagename of URL must be provided"
msgstr "Entweder Paketname oder URL muss angegeben werden"
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr "Plugin aktivieren"
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr "Dieses Plugin aktivieren"
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr "Keine korrekten Objekte für Vorlage gegeben"
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Vorlagendatei '{template}' fehlt oder existiert nicht"
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr "Testbericht"
-#: report/helpers.py:13
+#: report/helpers.py:14
msgid "A4"
msgstr "A4"
-#: report/helpers.py:14
-msgid "A3"
-msgstr ""
-
#: report/helpers.py:15
msgid "Legal"
msgstr "US-Legal"
@@ -7651,107 +7547,107 @@ msgstr "US-Legal"
msgid "Letter"
msgstr "US-Letter"
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr "Vorlagen Name"
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr "Bericht-Vorlage Datei"
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr "Bericht-Vorlage Beschreibung"
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr "Bericht Revisionsnummer (autom. erhöht)"
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr "Seitengröße für PDF-Berichte"
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr "Querformat"
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr "Muster für die Erstellung von Berichtsdateinamen"
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr "Bericht-Vorlage ist ein"
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr "Lagerartikel-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr "einfügen Installiert in Tests"
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr "Test-Ergebnisse für Lagerartikel in Baugruppen einschließen"
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr "Bauauftrag Filter"
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr "Bau-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr "Teil Filter"
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr "Bestellungs-Abfragefilter"
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr "Auftrags-Abfragefilter"
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr "Snippet"
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr "Berichts-Snippet"
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr "Snippet-Beschreibung"
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr "Ressource"
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr "Berichts-Ressource"
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr "Ressource-Beschreibung"
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr "Summe"
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr "Ergebnis"
@@ -7891,7 +7787,7 @@ msgstr "Lieferant"
msgid "Customer ID"
msgstr "Kunden ID"
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr "verbaut in"
@@ -7916,33 +7812,33 @@ msgstr "Überprüfung erforderlich"
msgid "Delete on Deplete"
msgstr "Löschen wenn leer"
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr "Ablaufdatum"
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr "Externer Standort"
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr "Menge ist erforderlich"
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr "Gültiges Teil muss angegeben werden"
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr "Der angegebene Lieferantenartikel existiert nicht"
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden"
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr "Bestand-Lagerort"
msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr "Besitzer"
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr "Besitzer auswählen"
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr "Sie können diesen Lagerort nicht als strukturell markieren, da sich bereits Lagerartikel darin befinden!"
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Lagerartikel können nicht in strukturelle Lagerorte abgelegt werden!"
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr "Für virtuelle Teile können keine Lagerartikel erstellt werden"
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Teile-Typ ('{pf}') muss {pe} sein"
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein"
-#: stock/models.py:676
+#: stock/models.py:706
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:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr "Teil kann nicht zu sich selbst gehören"
-#: stock/models.py:704
+#: stock/models.py:734
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:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr "Referenz verweist nicht auf das gleiche Teil"
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr "Eltern-Lagerartikel"
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr "Basis-Teil"
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen"
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr "Verpackung, in der dieser Lagerartikel gelagert ist"
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr "Ist dieses Teil in einem anderen verbaut?"
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr "Losnummer für diesen Lagerartikel"
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr "Bestand"
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr "Quellbau"
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr "Bauauftrag für diesen Lagerartikel"
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr "Quelle Bestellung"
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr "Bestellung für diesen Lagerartikel"
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr "Ziel-Auftrag"
-#: stock/models.py:855
+#: stock/models.py:885
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:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr "Löschen wenn leer"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist"
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr "Preis für eine Einheit bei Einkauf"
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr "In Teil umgewandelt"
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr "Teil ist nicht verfolgbar"
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:1454
+#: stock/models.py:1485
#, 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:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr "Artikel wurde einem Kundenauftrag zugewiesen"
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr "Lagerartikel ist in anderem Element verbaut"
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr "Lagerartikel enthält andere Artikel"
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr "Artikel wurde einem Kunden zugewiesen"
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr "Lagerartikel wird aktuell produziert"
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden"
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr "Artikel duplizeren"
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr "Lagerartikel müssen auf dasselbe Teil verweisen"
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen"
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr "Status-Codes müssen zusammenpassen"
-#: stock/models.py:1766
+#: stock/models.py:1797
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:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr "Test Notizen"
@@ -8231,141 +8127,141 @@ msgstr "Seriennummer ist zu lang"
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Einkaufspreis dieses Lagerartikels, pro Einheit oder Verpackungseinheit"
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben"
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})"
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr "Seriennummern für neue Teile eingeben"
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr "Ziel-Bestand"
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr "Optionales Notizfeld"
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr "Seriennummern können diesem Teil nicht zugewiesen werden"
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr "Lagerartikel für Installation auswählen"
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr " Transaktionsnotizen hinzufügen (optional)"
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr "Lagerartikel ist nicht verfügbar"
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr "Ausgewähltes Teil ist nicht in der Stückliste"
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr "Ziel Lagerort für unverbautes Objekt"
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr "Wählen Sie einen Teil aus, zu dem dieser Lagerartikel geändert werden soll"
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr "Das ausgewählte Teil ist keine gültige Option für die Umwandlung"
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr "Ziel Lagerort für zurückgegebene Artikel"
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr "Teil muss verkaufbar sein"
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr "Artikel ist einem Kundenauftrag zugeordnet"
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr "Artikel ist einem Fertigungsauftrag zugeordnet"
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr "Kunde zum Zuweisen von Lagerartikel"
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr "Ausgewählte Firma ist kein Kunde"
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr "Notizen zur Lagerzuordnung"
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr "Eine Liste der Lagerbestände muss angegeben werden"
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr "Notizen zur Lagerartikelzusammenführung"
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr "Unterschiedliche Lieferanten erlauben"
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben"
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr "Unterschiedliche Status erlauben"
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben"
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr "Mindestens zwei Lagerartikel müssen angegeben werden"
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr "Primärschlüssel Lagerelement"
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr "Bestandsbewegungsnotizen"
@@ -9905,7 +9801,7 @@ 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:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr "Benötigte Menge"
@@ -10282,74 +10178,74 @@ msgstr "Varianten erlaubt"
msgid "Substitutes"
msgstr "Ersatzteile"
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr "Stücklisten-Bepreisung ist vollständig"
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr "Stücklisten-Bepreisung ist unvollständig"
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr "Keine Preisinformation verfügbar"
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr "Kein Lagerbestand verfügbar"
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr "Beinhaltet Variante und Ersatzbestand"
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr "Beinhaltet Variantenbestand"
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr "Enthält Ersatzbestand"
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr "Verbrauchsartikel"
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr "Stücklisten-Position kontrollieren"
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr "Diese Position wurde kontrolliert"
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr "Ersatzteile bearbeiten"
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr "Stücklisten-Position bearbeiten"
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr "Stücklisten-Position löschen"
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr "Stückliste anzeigen"
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr "Keine Stücklisten-Position(en) gefunden"
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr "benötigtes Teil"
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr "Geerbt von übergeordneter Stückliste"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index f24884d62f..aba545efce 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "Το API endpoint δε βρέθηκε"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Δεν έχετε δικαιώματα να το δείτε αυτό"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Μπορείτε να βρείτε λεπτομέρειες σφάλματος στον πίνακα διαχείρισης"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Εισάγετε ημερομηνία"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Εισάγετε ημερομηνία"
msgid "Notes"
msgstr "Σημειώσεις"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Η τιμή '{name}' δεν εμφανίζεται σε μορφή μοτίβου"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Η παρεχόμενη τιμή δεν ταιριάζει με το απαιτούμενο απαραραίητη μοτίβο: "
@@ -103,99 +98,99 @@ msgstr "Επιβεβαιώστε τον νέο κωδικό πρόσβασης"
msgid "Old password"
msgstr "Παλιός κωδικός πρόσβασης"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "E-mail (ξανά)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Επιβεβαίωση διεύθυνσης email"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Πρέπει να πληκτρολογήσετε το ίδιο email κάθε φορά."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Η παρεχόμενη κύρια διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυδρομείου δεν έχει εγκριθεί."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Μη έγκυρη ποσότητα"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Κενό σειριακό αριθμό συμβολοσειράς"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Διπλότυπο serial number"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Μη έγκυρο εύρος ομάδας: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Το εύρος της ομάδας {g} υπερβαίνει την επιτρεπόμενη ποσότητα ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Μη έγκυρη ακολουθία ομάδας: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Δεν βρέθηκαν σειριακοί αριθμοί"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Ο αριθμός μοναδικών σειριακών αριθμών ({s}) πρέπει να αντιστοιχεί στην ποσότητα ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισάγατε"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Σφάλμα σύνδεσης"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Ο διακομιστής απάντησε με μη έγκυρο κωδικό κατάστασης"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Προέκυψε σφάλμα"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Ο διακομιστής ανταποκρίθηκε με \"Invalid Content-Length value\""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Η εικόνα είναι πολύ μεγάλη σε μέγεθος"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Η λήψη εικόνας ξεπέρασε το μέγιστο μέγεθος"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Λανθασμένο μοτίβο"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Δώσατε λάθος μορφή κλειδιού"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Λείπει το απαραίτητο κλειδί"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Το πεδίο δεν μπορεί να είναι άδειο"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Η αναφορά πρέπει να ταιριάζει με το απαιτούμενο μοτίβο"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Ο αριθμός αναφοράς είναι πολύ μεγάλος"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Το αρχείο λείπει"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Λείπει ο εξωτερικός σύνδεσμος"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Συνημμένο"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Επιλέξτε αρχείο για επισύναψη"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Επιλέξτε αρχείο για επισύναψη"
msgid "Link"
msgstr "Σύνδεσμος"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Σχόλιο"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Σχόλιο αρχείου"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Χρήστης"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "ημερομηνία φόρτωσης"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Το όνομα αρχείου δεν μπορεί να είναι κενό"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Μη διαθέσιμη τοποθεσία συνημμένου"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Το όνομα αρχείου περιέχει μη έγκυρους χαρακτήρες '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Λείπει επέκταση ονόματος αρχείου"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Αρχείο με αυτό το όνομα υπάρχει ήδη"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Σφάλμα κατά τη μετονομασία"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Μη έγκυρη επιλογή"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Μη έγκυρη επιλογή"
msgid "Name"
msgstr "Όνομα"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Όνομα"
msgid "Description"
msgstr "Περιγραφή"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Περιγραφή (προαιρετική)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "γονέας"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Μονοπάτι"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Σφάλμα διακομιστή"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Πρέπει να είναι αριθμός"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Όνομα αρχείου"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Μη έγκυρη τιμή"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Αρχείο Δεδομένων"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Επιλέξτε ένα αρχείο για ανέβασμα"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Μη υποστηριζόμενος τύπος αρχείου"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Το αρχείο είναι πολύ μεγάλο"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Δεν βρέθηκαν στήλες στο αρχείο"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Δεν βρέθηκαν γραμμές δεδομένων στο αρχείο"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Δεν παρασχέθηκαν σειρές δεδομένων"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Δεν δόθηκαν στήλες δεδομένων"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Λείπει απαιτούμενη στήλη: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Διπλή στήλη: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "Διεύθυνση URL του αρχείου απομακρυσμένης εικόνας"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη"
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Ο έλεγχος εργασίας στο παρασκήνιο απέτυχε"
@@ -688,7 +683,7 @@ msgstr "Επιστράφηκε"
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Μη έγκυρος κωδικός συναλλάγματος"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Η μέση τιμή δεν πρέπει να είναι αρνητική"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Η μέση τιμή δεν πρέπει να υπερβαίνει το 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Μη έγκυρη τιμή για υπέρβαση"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Τροποποίηση πληροφοριών χρήστη"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Ορισμός Κωδικού Πρόσβασης"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Τα πεδία κωδικού πρόσβασης πρέπει να ταιριάζουν"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Δόθηκε λάθος κωδικός πρόσβασης"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Πληροφορίες συστήματος"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Σχετικά με το InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Μη έγκυρη επιλογή για γονική κατασκευή"
msgid "Build Order Reference"
msgstr "Αναφορά Παραγγελίας Κατασκευής"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατασκευή"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Κωδικός Παραγγελίας Πωλήσεων"
msgid "SalesOrder to which this build is allocated"
msgstr "SalesOrder στην οποία έχει διατεθεί αυτό το build"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Κατάσταση Κατασκευής"
msgid "Build status code"
msgstr "Κωδικός κατάστασης κατασκευής"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Κωδικός Παρτίδας"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Ημερομηνία ολοκλήρωσης στόχου"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Ημερομηνία ολοκλήρωσης"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Η παραγγελία κατασκευής {build} έχει ολοκληρωθεί"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Δεν καθορίστηκε έξοδος κατασκευής"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "Ποσότητα"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Το στοιχείο κατασκευής πρέπει να ορίζει μια έξοδο κατασκευής, καθώς το κύριο τμήμα επισημαίνεται ως ανιχνεύσιμο"
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακό απόθεμα"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr "Στοιχείο Αποθέματος"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Στοιχείο πηγαίου αποθέματος"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Εγκατάσταση σε"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Αποθήκη προορισμού"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Κατασκευή Εξόδου"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "Το εξερχόμενο μέρος δεν ταιριάζει με το μέρος BuildOrder"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "Αυτή η έξοδος κατασκευής δεν έχει εκχωρηθεί πλήρως"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Ακέραιη ποσότητα που απαιτείται για ανιχνεύσιμα μέρη"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς ο λογαριασμός των υλικών περιέχει ανιχνεύσιμα μέρη"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Σειριακοί αριθμοί"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "Το IPN πρέπει να ταιριάζει με το μοτίβο regex {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 38670114f9..ac60f48dce 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-18 03:46+0000\n"
+"POT-Creation-Date: 2023-09-29 21:02+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME
\n"
"Language-Team: LANGUAGE \n"
@@ -18,69 +18,71 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:93
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
-#, python-brace-format
-msgid "Could not convert {original} to {unit}"
+#: InvenTree/conversion.py:115
+msgid "Provided value is not a valid number"
+msgstr ""
+
+#: InvenTree/conversion.py:117
+msgid "Provided value has an invalid unit"
+msgstr ""
+
+#: InvenTree/conversion.py:122
+msgid "Provided value could not be converted to the specified unit"
msgstr ""
#: InvenTree/conversion.py:127
-msgid "Invalid quantity supplied"
+msgid "Error"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:121 stock/models.py:2191 stock/models.py:2299
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:999 stock/serializers.py:1098
+#: stock/serializers.py:1259 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
-#: templates/js/translated/part.js:1077
-#: templates/js/translated/purchase_order.js:2179
-#: templates/js/translated/return_order.js:773
+#: templates/js/translated/part.js:1061
+#: templates/js/translated/purchase_order.js:2175
+#: templates/js/translated/return_order.js:769
#: templates/js/translated/sales_order.js:1064
#: templates/js/translated/sales_order.js:1979
-#: templates/js/translated/stock.js:1516 templates/js/translated/stock.js:2398
+#: templates/js/translated/stock.js:1478 templates/js/translated/stock.js:2360
msgid "Notes"
msgstr ""
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -104,99 +106,99 @@ msgstr ""
msgid "Old password"
msgstr ""
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr ""
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -212,252 +214,248 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2293
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2770 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: stock/admin.py:138 templates/js/translated/company.js:1309
+#: stock/admin.py:120 templates/js/translated/company.js:1309
#: templates/js/translated/company.js:1663 templates/js/translated/order.js:351
-#: templates/js/translated/part.js:2451
-#: templates/js/translated/purchase_order.js:2019
-#: templates/js/translated/purchase_order.js:2183
-#: templates/js/translated/return_order.js:777
+#: templates/js/translated/part.js:2430
+#: templates/js/translated/purchase_order.js:2015
+#: templates/js/translated/purchase_order.js:2179
+#: templates/js/translated/return_order.js:773
#: templates/js/translated/sales_order.js:1053
#: templates/js/translated/sales_order.js:1984
msgid "Link"
msgstr ""
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:735
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2229
+#: common/models.py:2230 common/models.py:2443 common/models.py:2444
+#: common/models.py:2700 common/models.py:2701 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:224 plugin/models.py:225
#: report/templates/report/inventree_test_report_base.html:105
-#: templates/js/translated/stock.js:3007
+#: templates/js/translated/stock.js:2958
msgid "User"
msgstr ""
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
-#: templates/InvenTree/settings/mixins/urls.html:13
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2429
+#: common/models.py:2877 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:164 templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
#: templates/InvenTree/settings/plugin_settings.html:22
#: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
#: templates/js/translated/company.js:666
#: templates/js/translated/company.js:714
#: templates/js/translated/company.js:903
#: templates/js/translated/company.js:1155
-#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1183
-#: templates/js/translated/part.js:1471 templates/js/translated/part.js:1607
-#: templates/js/translated/part.js:2744 templates/js/translated/stock.js:2687
+#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1167
+#: templates/js/translated/part.js:1455 templates/js/translated/part.js:1591
+#: templates/js/translated/part.js:2723 templates/js/translated/stock.js:2649
msgid "Name"
msgstr ""
-#: InvenTree/models.py:656 build/models.py:168
+#: InvenTree/models.py:672 build/models.py:168
#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:177
+#: report/models.py:580 report/models.py:624
#: report/templates/report/inventree_build_order_base.html:117
-#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
+#: stock/admin.py:41 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:27
#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
#: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
-#: templates/js/translated/build.js:2121 templates/js/translated/company.js:518
+#: templates/js/translated/build.js:2109 templates/js/translated/company.js:518
#: templates/js/translated/company.js:1320
#: templates/js/translated/company.js:1631 templates/js/translated/index.js:119
-#: templates/js/translated/order.js:298 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1618
-#: templates/js/translated/part.js:1953 templates/js/translated/part.js:2350
-#: templates/js/translated/part.js:2780 templates/js/translated/part.js:2868
-#: templates/js/translated/plugin.js:79
-#: templates/js/translated/purchase_order.js:1685
-#: templates/js/translated/purchase_order.js:1828
-#: templates/js/translated/purchase_order.js:2001
+#: templates/js/translated/order.js:298 templates/js/translated/part.js:1219
+#: templates/js/translated/part.js:1464 templates/js/translated/part.js:1602
+#: templates/js/translated/part.js:1937 templates/js/translated/part.js:2329
+#: templates/js/translated/part.js:2759 templates/js/translated/part.js:2847
+#: templates/js/translated/purchase_order.js:1681
+#: templates/js/translated/purchase_order.js:1824
+#: templates/js/translated/purchase_order.js:1997
#: templates/js/translated/return_order.js:311
#: templates/js/translated/sales_order.js:799
#: templates/js/translated/sales_order.js:1809
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:2028
-#: templates/js/translated/stock.js:2719 templates/js/translated/stock.js:2802
+#: templates/js/translated/stock.js:1457 templates/js/translated/stock.js:1990
+#: templates/js/translated/stock.js:2681 templates/js/translated/stock.js:2753
msgid "Description"
msgstr ""
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr ""
-#: InvenTree/models.py:672 InvenTree/models.py:673
-#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
+#: InvenTree/models.py:688 InvenTree/models.py:689
+#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2690
msgid "Path"
msgstr ""
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
@@ -511,136 +509,136 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:713
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:714
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:728
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:814
+#: InvenTree/settings.py:756
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:815
+#: InvenTree/settings.py:757
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:816
+#: InvenTree/settings.py:758
msgid "German"
msgstr ""
-#: InvenTree/settings.py:817
+#: InvenTree/settings.py:759
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:818
+#: InvenTree/settings.py:760
msgid "English"
msgstr ""
-#: InvenTree/settings.py:819
+#: InvenTree/settings.py:761
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:820
+#: InvenTree/settings.py:762
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:821
+#: InvenTree/settings.py:763
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:822
+#: InvenTree/settings.py:764
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:823
+#: InvenTree/settings.py:765
msgid "French"
msgstr ""
-#: InvenTree/settings.py:824
+#: InvenTree/settings.py:766
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:825
+#: InvenTree/settings.py:767
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:826
+#: InvenTree/settings.py:768
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:827
+#: InvenTree/settings.py:769
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:828
+#: InvenTree/settings.py:770
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:829
+#: InvenTree/settings.py:771
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:772
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:773
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:774
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:775
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:776
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:777
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:778
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:779
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:780
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:781
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:782
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:783
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:784
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1000
msgid "Background worker check failed"
msgstr ""
@@ -655,7 +653,7 @@ msgstr ""
#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40
#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167
#: InvenTree/status_codes.py:188 generic/states/tests.py:16
-#: templates/js/translated/table_filters.js:594
+#: templates/js/translated/table_filters.js:558
msgid "Pending"
msgstr ""
@@ -689,7 +687,7 @@ msgstr ""
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -724,7 +722,7 @@ msgstr ""
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544
+#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:510
msgid "Stock item created"
msgstr ""
@@ -780,7 +778,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1826
+#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1788
msgid "Merged stock items"
msgstr ""
@@ -800,7 +798,7 @@ msgstr ""
msgid "Build order output rejected"
msgstr ""
-#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1732
+#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1694
msgid "Consumed by build order"
msgstr ""
@@ -816,7 +814,7 @@ msgstr ""
msgid "Returned against Return Order"
msgstr ""
-#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375
+#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:351
msgid "Sent to customer"
msgstr ""
@@ -848,93 +846,93 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr ""
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr ""
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
-#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
+#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2493
#: templates/js/translated/table_filters.js:190
-#: templates/js/translated/table_filters.js:579
+#: templates/js/translated/table_filters.js:543
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
-#: templates/js/translated/build.js:2514
+#: templates/js/translated/build.js:2502
#: templates/js/translated/table_filters.js:186
#: templates/js/translated/table_filters.js:215
-#: templates/js/translated/table_filters.js:583
+#: templates/js/translated/table_filters.js:547
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
-#: templates/js/translated/table_filters.js:575
+#: build/api.py:289 templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:539
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
-#: templates/js/translated/build.js:2605
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1717
+#: templates/js/translated/build.js:2593
#: templates/js/translated/sales_order.js:1926
-#: templates/js/translated/table_filters.js:567
+#: templates/js/translated/table_filters.js:531
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2534
#: templates/js/translated/index.js:123
-#: templates/js/translated/model_renderers.js:226
-#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
-#: templates/js/translated/part.js:696
-#: templates/js/translated/table_filters.js:340
-#: templates/js/translated/table_filters.js:571
+#: templates/js/translated/model_renderers.js:223
+#: templates/js/translated/part.js:673 templates/js/translated/part.js:675
+#: templates/js/translated/part.js:680
+#: templates/js/translated/table_filters.js:316
+#: templates/js/translated/table_filters.js:535
msgid "Available"
msgstr ""
@@ -943,7 +941,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:105
#: templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
-#: templates/js/translated/build.js:961 templates/js/translated/stock.js:2863
+#: templates/js/translated/build.js:953 templates/js/translated/stock.js:2814
msgid "Build Order"
msgstr ""
@@ -966,18 +964,18 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1737 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
#: report/templates/report/inventree_so_report_base.html:28
#: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973
-#: templates/js/translated/build.js:2497 templates/js/translated/order.js:291
+#: templates/js/translated/build.js:2485 templates/js/translated/order.js:291
#: templates/js/translated/pricing.js:386
-#: templates/js/translated/purchase_order.js:2044
-#: templates/js/translated/return_order.js:726
+#: templates/js/translated/purchase_order.js:2040
+#: templates/js/translated/return_order.js:722
#: templates/js/translated/sales_order.js:1815
msgid "Reference"
msgstr ""
@@ -996,13 +994,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:958 part/serializers.py:1373
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1013,7 +1011,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1021,28 +1019,28 @@ msgstr ""
#: templates/email/overdue_build_order.html:16
#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
-#: templates/js/translated/build.js:1293 templates/js/translated/build.js:1724
-#: templates/js/translated/build.js:2144 templates/js/translated/build.js:2317
+#: templates/js/translated/build.js:1285 templates/js/translated/build.js:1716
+#: templates/js/translated/build.js:2132 templates/js/translated/build.js:2305
#: templates/js/translated/company.js:348
#: templates/js/translated/company.js:1106
#: templates/js/translated/company.js:1261
#: templates/js/translated/company.js:1549 templates/js/translated/index.js:109
-#: templates/js/translated/part.js:1938 templates/js/translated/part.js:2010
-#: templates/js/translated/part.js:2319 templates/js/translated/pricing.js:369
+#: templates/js/translated/part.js:1922 templates/js/translated/part.js:1994
+#: templates/js/translated/part.js:2298 templates/js/translated/pricing.js:369
#: templates/js/translated/purchase_order.js:757
#: templates/js/translated/purchase_order.js:1289
-#: templates/js/translated/purchase_order.js:1827
-#: templates/js/translated/purchase_order.js:1986
+#: templates/js/translated/purchase_order.js:1823
+#: templates/js/translated/purchase_order.js:1982
#: templates/js/translated/return_order.js:536
-#: templates/js/translated/return_order.js:707
+#: templates/js/translated/return_order.js:703
#: templates/js/translated/sales_order.js:297
#: templates/js/translated/sales_order.js:1194
#: templates/js/translated/sales_order.js:1595
#: templates/js/translated/sales_order.js:1793
-#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842
-#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1967
-#: templates/js/translated/stock.js:2828 templates/js/translated/stock.js:3061
-#: templates/js/translated/stock.js:3202
+#: templates/js/translated/stock.js:642 templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:1020 templates/js/translated/stock.js:1929
+#: templates/js/translated/stock.js:2779 templates/js/translated/stock.js:3012
+#: templates/js/translated/stock.js:3149
msgid "Part"
msgstr ""
@@ -1058,8 +1056,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
-#: templates/js/translated/build.js:1712
+#: build/models.py:207 build/serializers.py:946
+#: templates/js/translated/build.js:1704
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
msgstr ""
@@ -1100,17 +1098,17 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:739 stock/serializers.py:1223
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1125,8 +1123,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
-#: templates/js/translated/build.js:2229
+#: build/models.py:265 order/models.py:422 order/models.py:1780
+#: templates/js/translated/build.js:2217
msgid "Completion Date"
msgstr ""
@@ -1134,7 +1132,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:279 templates/js/translated/build.js:2189
+#: build/models.py:279 templates/js/translated/build.js:2177
msgid "Issued by"
msgstr ""
@@ -1143,16 +1141,16 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2201
-#: templates/js/translated/purchase_order.js:1742
+#: templates/js/translated/build.js:2189
+#: templates/js/translated/purchase_order.js:1738
#: templates/js/translated/return_order.js:356
-#: templates/js/translated/table_filters.js:527
+#: templates/js/translated/table_filters.js:491
msgid "Responsible"
msgstr ""
@@ -1166,7 +1164,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:733
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1181,9 +1179,9 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
-#: templates/js/translated/build.js:2126
-#: templates/js/translated/purchase_order.js:1689
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
+#: templates/js/translated/build.js:2114
+#: templates/js/translated/purchase_order.js:1685
#: templates/js/translated/return_order.js:315
#: templates/js/translated/sales_order.js:803
#: templates/js/translated/table_filters.js:48
@@ -1195,48 +1193,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1215 part/serializers.py:1536
+#: stock/models.py:593 stock/models.py:1387 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2251
+#: order/models.py:1086 order/models.py:1658 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1246,376 +1244,380 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:103 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:510
-#: templates/js/translated/build.js:726 templates/js/translated/build.js:1350
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2339
+#: templates/js/translated/build.js:722 templates/js/translated/build.js:1342
+#: templates/js/translated/build.js:1719 templates/js/translated/build.js:2327
#: templates/js/translated/company.js:1808
-#: templates/js/translated/model_renderers.js:228
-#: templates/js/translated/order.js:304 templates/js/translated/part.js:958
-#: templates/js/translated/part.js:1808 templates/js/translated/part.js:3305
+#: templates/js/translated/model_renderers.js:225
+#: templates/js/translated/order.js:304 templates/js/translated/part.js:942
+#: templates/js/translated/part.js:1792 templates/js/translated/part.js:3284
#: templates/js/translated/pricing.js:381
#: templates/js/translated/pricing.js:474
#: templates/js/translated/pricing.js:522
#: templates/js/translated/pricing.js:616
#: templates/js/translated/purchase_order.js:760
-#: templates/js/translated/purchase_order.js:1831
-#: templates/js/translated/purchase_order.js:2050
+#: templates/js/translated/purchase_order.js:1827
+#: templates/js/translated/purchase_order.js:2046
#: templates/js/translated/sales_order.js:314
#: templates/js/translated/sales_order.js:1196
#: templates/js/translated/sales_order.js:1515
#: templates/js/translated/sales_order.js:1605
#: templates/js/translated/sales_order.js:1695
#: templates/js/translated/sales_order.js:1821
-#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702
-#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:2992
-#: templates/js/translated/stock.js:3073
+#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:668
+#: templates/js/translated/stock.js:839 templates/js/translated/stock.js:2943
+#: templates/js/translated/stock.js:3024
msgid "Quantity"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1614
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1617
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:930
+#: stock/serializers.py:1056 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
-#: templates/js/translated/build.js:1726
+#: templates/js/translated/build.js:1718
#: templates/js/translated/sales_order.js:298
#: templates/js/translated/sales_order.js:1195
#: templates/js/translated/sales_order.js:1496
#: templates/js/translated/sales_order.js:1501
#: templates/js/translated/sales_order.js:1602
#: templates/js/translated/sales_order.js:1689
-#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843
-#: templates/js/translated/stock.js:2948
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:809
+#: templates/js/translated/stock.js:2899
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
-#: templates/js/translated/build.js:1303
+#: build/serializers.py:156 build/serializers.py:828
+#: templates/js/translated/build.js:1295
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
-#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
+#: templates/js/translated/stock.js:333 templates/js/translated/stock.js:531
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:736
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:970
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1091 stock/serializers.py:1362
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
-#: templates/js/translated/build.js:2354
+#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:980
+#: templates/js/translated/build.js:2342
#: templates/js/translated/purchase_order.js:1163
#: templates/js/translated/purchase_order.js:1253
#: templates/js/translated/sales_order.js:1508
#: templates/js/translated/sales_order.js:1616
#: templates/js/translated/sales_order.js:1624
#: templates/js/translated/sales_order.js:1703
-#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844
-#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2171
-#: templates/js/translated/stock.js:2842
+#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:810
+#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:2133
+#: templates/js/translated/stock.js:2793
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1763 order/serializers.py:530 stock/admin.py:106
+#: stock/serializers.py:703 stock/serializers.py:1230
#: stock/templates/stock/item_base.html:428
-#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
+#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2161
#: templates/js/translated/purchase_order.js:1293
-#: templates/js/translated/purchase_order.js:1701
+#: templates/js/translated/purchase_order.js:1697
#: templates/js/translated/return_order.js:328
#: templates/js/translated/sales_order.js:816
-#: templates/js/translated/stock.js:2146 templates/js/translated/stock.js:2966
-#: templates/js/translated/stock.js:3089
+#: templates/js/translated/stock.js:2108 templates/js/translated/stock.js:2917
+#: templates/js/translated/stock.js:3040
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:943
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1732,16 +1734,16 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2221 templates/js/translated/part.js:1826
-#: templates/js/translated/purchase_order.js:1718
-#: templates/js/translated/purchase_order.js:2126
+#: templates/js/translated/build.js:2209 templates/js/translated/part.js:1810
+#: templates/js/translated/purchase_order.js:1714
+#: templates/js/translated/purchase_order.js:2122
#: templates/js/translated/return_order.js:344
-#: templates/js/translated/return_order.js:748
+#: templates/js/translated/return_order.js:744
#: templates/js/translated/sales_order.js:832
#: templates/js/translated/sales_order.js:1864
msgid "Target Date"
@@ -1758,9 +1760,9 @@ msgstr ""
#: order/templates/order/return_order_base.html:118
#: order/templates/order/sales_order_base.html:123
#: templates/js/translated/table_filters.js:98
-#: templates/js/translated/table_filters.js:520
-#: templates/js/translated/table_filters.js:622
-#: templates/js/translated/table_filters.js:663
+#: templates/js/translated/table_filters.js:484
+#: templates/js/translated/table_filters.js:586
+#: templates/js/translated/table_filters.js:627
msgid "Overdue"
msgstr ""
@@ -1770,8 +1772,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1781,7 +1783,7 @@ msgstr ""
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:766
#: templates/js/translated/sales_order.js:989
-#: templates/js/translated/stock.js:2895
+#: templates/js/translated/stock.js:2846
msgid "Sales Order"
msgstr ""
@@ -1793,7 +1795,7 @@ msgid "Issued By"
msgstr ""
#: build/templates/build/build_base.html:212
-#: build/templates/build/detail.html:94 templates/js/translated/build.js:2138
+#: build/templates/build/detail.html:94 templates/js/translated/build.js:2126
msgid "Priority"
msgstr ""
@@ -1821,8 +1823,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
-#: templates/js/translated/purchase_order.js:2168
+#: build/templates/build/detail.html:49 order/models.py:1235
+#: templates/js/translated/purchase_order.js:2164
msgid "Destination"
msgstr ""
@@ -1834,15 +1836,15 @@ msgstr ""
msgid "Allocated Parts"
msgstr ""
-#: build/templates/build/detail.html:80 stock/admin.py:123
+#: build/templates/build/detail.html:80 stock/admin.py:105
#: stock/templates/stock/item_base.html:163
-#: templates/js/translated/build.js:1361
-#: templates/js/translated/model_renderers.js:233
+#: templates/js/translated/build.js:1353
+#: templates/js/translated/model_renderers.js:230
#: templates/js/translated/purchase_order.js:1259
-#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2160
-#: templates/js/translated/stock.js:3096
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:404
+#: templates/js/translated/stock.js:1092 templates/js/translated/stock.js:2122
+#: templates/js/translated/stock.js:3047
+#: templates/js/translated/table_filters.js:289
+#: templates/js/translated/table_filters.js:380
msgid "Batch"
msgstr ""
@@ -1850,7 +1852,7 @@ msgstr ""
#: order/templates/order/order_base.html:173
#: order/templates/order/return_order_base.html:152
#: order/templates/order/sales_order_base.html:187
-#: templates/js/translated/build.js:2181
+#: templates/js/translated/build.js:2169
msgid "Created"
msgstr ""
@@ -1860,7 +1862,7 @@ msgstr ""
#: build/templates/build/detail.html:149
#: order/templates/order/sales_order_base.html:203
-#: templates/js/translated/table_filters.js:685
+#: templates/js/translated/table_filters.js:649
msgid "Completed"
msgstr ""
@@ -2007,11 +2009,11 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:71
+#: common/models.py:70
msgid "Updated"
msgstr ""
-#: common/models.py:72
+#: common/models.py:71
msgid "Timestamp of last update"
msgstr ""
@@ -2023,1467 +2025,1438 @@ msgstr ""
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:595
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:597
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:638
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:655
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:666
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:705
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:912
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:937
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:939
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
-msgid "No plugin"
-msgstr ""
-
-#: common/models.py:1060
+#: common/models.py:996
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:997
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
-msgid "Pending migrations"
-msgstr ""
-
-#: common/models.py:1069
-msgid "Number of pending database migrations"
-msgstr ""
-
-#: common/models.py:1075
+#: common/models.py:1004
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1006
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1011
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1012
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1018
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1019
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1025 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1026
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1031
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1032
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1039
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1040
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
-msgid "Currency Update Interval"
-msgstr ""
-
-#: common/models.py:1119
-msgid "How often to update exchange rates (set to zero to disable)"
-msgstr ""
-
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
-msgid "days"
-msgstr ""
-
-#: common/models.py:1129
-msgid "Currency Update Plugin"
-msgstr ""
-
-#: common/models.py:1130
-msgid "Currency update plugin to use"
-msgstr ""
-
-#: common/models.py:1136
+#: common/models.py:1047
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1048
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1054
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1055
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1066
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1067
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1072
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1073
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1079
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1080
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1089
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1090
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1096 common/models.py:1114 common/models.py:1121
+#: common/models.py:1132 common/models.py:1143 common/models.py:1374
+#: common/models.py:1398 common/models.py:1521 common/models.py:1777
+msgid "days"
+msgstr ""
+
+#: common/models.py:1100
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1101
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1107
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1108
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1118
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1119
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1129
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1130
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1140
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1141
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1151 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
-msgid "Enable barcode scanner support in the web interface"
+#: common/models.py:1152
+msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1158
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1159
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1169
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1170
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1176
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1177
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1183
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1184
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1188
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1189
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1195
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1196
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1202
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1203
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1209
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1210
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1216
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1217
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1223
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1224
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:763
+#: common/models.py:1230 part/admin.py:55 part/models.py:3621
+#: report/models.py:170 templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:727
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1231
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
-#: templates/js/translated/table_filters.js:330
-#: templates/js/translated/table_filters.js:717
+#: common/models.py:1237 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
+#: templates/js/translated/table_filters.js:306
+#: templates/js/translated/table_filters.js:681
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1238
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
-#: templates/js/translated/table_filters.js:725
+#: common/models.py:1244 part/admin.py:52 part/models.py:1007
+#: templates/js/translated/table_filters.js:689
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1245
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1251 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1252
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
-#: templates/js/translated/table_filters.js:751
+#: common/models.py:1258 part/admin.py:54 part/models.py:1023
+#: templates/js/translated/table_filters.js:715
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1259
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1265 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:767
+#: templates/js/translated/table_filters.js:731
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1266
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1272 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:771
+#: templates/js/translated/table_filters.js:735
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1273
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1279
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1280
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1286
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1287
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1293
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1294
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1300 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1301
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1307
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1308
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1315
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1316
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1321
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1322
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1328
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1329
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1339
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1340
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1350
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1351
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1357
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1358
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1364
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1365
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1371
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1372
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1382
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1383
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1389
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1390
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1396
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1397
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1407
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1408
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1414
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1415
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1421
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1422
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1428
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1429
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1438
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1439
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1445 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1446
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1452
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1453
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1463
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1464
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1470
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1471
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1477
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1478
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1484
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1485
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1491
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1492
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1498
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1499
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1504
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1505
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1511
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1512
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1518
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1519
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1526
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1527
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1533
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1534
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1540
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1541
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1546
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1547
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1553
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1554
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1560
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1561
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1567
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1568
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1574
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1575
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1581
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1582
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1588
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1589
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1595
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1596
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1602
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1603
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1609
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1610
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1617
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1618
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1624
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1625
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1631
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1632
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1638
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1639
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1645
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1646
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1652
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1653
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1659
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1660
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1666
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1667
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1673
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1674
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1680
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1681
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1687
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1688
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1694
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1695
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1703
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1704
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1711
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1712
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1719
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1720
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1727
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1728
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1735
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1736
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1743
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1744
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1750
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1751
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1757
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1758
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1764
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1765
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1774
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1775
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1792 common/models.py:2222
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1833
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1834
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1840
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1841
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1847
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1848
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1854
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1855
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1861
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1862
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1868
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1869
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1875
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1876
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1882
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1883
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1889
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1890
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1896
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1897
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1903
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:1904
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:1910
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:1911
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:1917
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:1918
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:1924
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:1925
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:1931
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:1932
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:1938
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:1939
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:1945
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:1946
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:1952
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:1953
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:1959
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:1960
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:1966
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:1967
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:1973
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:1974
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:1980
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:1981
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:1987
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:1988
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:1994
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:1995
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2001
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2002
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2008
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2009
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2015
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2016
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2022
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2023
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2029
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2030
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2036
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2037
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2043
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2044
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2050
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2051
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2057
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2058
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2064
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2065
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2071
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2072
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2078
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2079
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2085
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2086
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2092
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2093
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2099
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2100
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2106
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2107
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2113
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2114
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2120
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2121
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2127
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2128
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2134
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2135
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2141
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2142
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2156 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2157
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2163 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2164
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2170
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2171
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2180
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2181
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2189
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2190
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2198
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2199
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2207
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2208
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2252
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
-#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
+#: common/models.py:2259 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1952
+#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1864
#: templates/js/translated/pricing.js:621
-#: templates/js/translated/return_order.js:738
+#: templates/js/translated/return_order.js:734
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2260
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2420 common/models.py:2598
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2421
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2430
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2435 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
-#: templates/js/translated/table_filters.js:488
-#: templates/js/translated/table_filters.js:516
-#: templates/js/translated/table_filters.js:712
+#: templates/js/translated/table_filters.js:464
+#: templates/js/translated/table_filters.js:480
+#: templates/js/translated/table_filters.js:676
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2436
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2450
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2451
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2458
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2459
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2565
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2566
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2574
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2575
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2582
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2583
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2589
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2590
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2599
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2604
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2605
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2759
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2765 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2775 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
-#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
+#: common/models.py:2780 templates/InvenTree/settings/plugin_settings.html:32
+#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:106
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2785 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2790
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2791
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2811 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3493,56 +3466,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2812
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2856
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2878
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2884 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2885
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2891 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2892
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3573,7 +3546,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3615,7 +3588,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3657,301 +3630,301 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:675
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:438
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
#: templates/js/translated/company.js:1286
#: templates/js/translated/company.js:1601
-#: templates/js/translated/table_filters.js:792
+#: templates/js/translated/table_filters.js:756
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:444
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
-#: templates/js/translated/company.js:1620 templates/js/translated/part.js:1797
-#: templates/js/translated/purchase_order.js:1830
-#: templates/js/translated/purchase_order.js:2032
+#: templates/js/translated/company.js:1620 templates/js/translated/part.js:1781
+#: templates/js/translated/purchase_order.js:1826
+#: templates/js/translated/purchase_order.js:2028
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
-#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
-#: templates/js/translated/stock.js:1502
+#: stock/models.py:2286 templates/js/translated/company.js:1156
+#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1473
+#: templates/js/translated/stock.js:1464
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
-#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
-#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
+#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1492
+#: templates/js/translated/part.js:1596 templates/js/translated/part.js:2344
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:427 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
-#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1765
+#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1749
#: templates/js/translated/pricing.js:498
-#: templates/js/translated/purchase_order.js:1672
-#: templates/js/translated/table_filters.js:796
+#: templates/js/translated/purchase_order.js:1668
+#: templates/js/translated/table_filters.js:760
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
-#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:433
+#: templates/js/translated/company.js:349 templates/js/translated/part.js:1767
#: templates/js/translated/pricing.js:510
-#: templates/js/translated/purchase_order.js:1829
-#: templates/js/translated/purchase_order.js:2007
+#: templates/js/translated/purchase_order.js:1825
+#: templates/js/translated/purchase_order.js:2003
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:433
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:119 stock/models.py:701 stock/serializers.py:1238
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
-#: templates/js/translated/stock.js:2394
+#: templates/js/translated/stock.js:2356
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
-#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
+#: company/models.py:746 templates/js/translated/company.js:1641
+#: templates/js/translated/part.js:1801 templates/js/translated/part.js:1856
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
#: templates/js/translated/purchase_order.js:1088
-#: templates/js/translated/purchase_order.js:2063
-#: templates/js/translated/purchase_order.js:2080
+#: templates/js/translated/purchase_order.js:2059
+#: templates/js/translated/purchase_order.js:2076
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4013,17 +3986,17 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1751 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:720
+#: stock/models.py:721 stock/serializers.py:985
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
#: templates/js/translated/return_order.js:293
#: templates/js/translated/sales_order.js:781
-#: templates/js/translated/stock.js:2930
-#: templates/js/translated/table_filters.js:800
+#: templates/js/translated/stock.js:2881
+#: templates/js/translated/table_filters.js:764
msgid "Customer"
msgstr ""
@@ -4031,7 +4004,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4195,7 +4168,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4226,7 +4199,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4247,7 +4220,7 @@ msgid "New Parameter"
msgstr ""
#: company/templates/company/manufacturer_part.html:206
-#: templates/js/translated/part.js:1419
+#: templates/js/translated/part.js:1403
msgid "Add Parameter"
msgstr ""
@@ -4276,11 +4249,11 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:684
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
-#: templates/js/translated/stock.js:2250
+#: templates/js/translated/stock.js:2212
msgid "Supplier Part"
msgstr ""
@@ -4336,7 +4309,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:211
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:199
-#: templates/js/translated/stock.js:537
+#: templates/js/translated/stock.js:503
msgid "New Stock Item"
msgstr ""
@@ -4366,15 +4339,15 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
-#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: part/templates/part/category_sidebar.html:17 stock/admin.py:47
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1057
-#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737
+#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1041
+#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2699
#: users/models.py:41
msgid "Stock Items"
msgstr ""
@@ -4383,28 +4356,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4424,7 +4397,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:277
msgid "Enabled"
msgstr ""
@@ -4448,7 +4421,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:270
msgid "Filename Pattern"
msgstr ""
@@ -4462,8 +4435,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:298 report/models.py:445
+#: report/models.py:483 report/models.py:521 report/models.py:645
msgid "Filters"
msgstr ""
@@ -4480,573 +4453,573 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
-#: templates/js/translated/purchase_order.js:2104
+#: templates/js/translated/purchase_order.js:2100
#: templates/js/translated/sales_order.js:1844
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
#: stock/templates/stock/item_base.html:177
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/part.js:1742 templates/js/translated/pricing.js:804
+#: templates/js/translated/part.js:1726 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:165
#: templates/js/translated/purchase_order.js:759
-#: templates/js/translated/purchase_order.js:1656
-#: templates/js/translated/stock.js:2230 templates/js/translated/stock.js:2878
+#: templates/js/translated/purchase_order.js:1652
+#: templates/js/translated/stock.js:2192 templates/js/translated/stock.js:2829
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1922 order/models.py:1968
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
#: templates/js/translated/return_order.js:278
-#: templates/js/translated/stock.js:2912
+#: templates/js/translated/stock.js:2863
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
-#: templates/js/translated/purchase_order.js:1681
+#: order/models.py:404 order/templates/order/order_base.html:148
+#: templates/js/translated/purchase_order.js:1677
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1774
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1775
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1781
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1768
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1769
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1921
+#: order/models.py:1968 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
-#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
+#: order/models.py:1216 order/templates/order/order_base.html:196
+#: templates/js/translated/part.js:1849 templates/js/translated/part.js:1880
#: templates/js/translated/purchase_order.js:1291
-#: templates/js/translated/purchase_order.js:2148
-#: templates/js/translated/return_order.js:761
+#: templates/js/translated/purchase_order.js:2144
+#: templates/js/translated/return_order.js:757
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:598
+#: templates/js/translated/table_filters.js:562
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:823 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
-#: templates/js/translated/stock.js:2281
+#: templates/js/translated/stock.js:2243
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1640 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:433
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1605
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1607
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1610
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1620 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1623
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1624
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1632
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1641
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
-#: templates/js/translated/return_order.js:719
+#: order/models.py:1654 order/models.py:1929
+#: templates/js/translated/return_order.js:715
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1655
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1658
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1738
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1752
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1763
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1914
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1930
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1935
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1936
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1947 templates/js/translated/return_order.js:726
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1947
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1953
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5214,12 +5187,12 @@ msgstr ""
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:133 templates/js/translated/build.js:518
-#: templates/js/translated/build.js:1610
+#: templates/js/translated/build.js:1602
#: templates/js/translated/purchase_order.js:703
#: templates/js/translated/purchase_order.js:1221
#: templates/js/translated/return_order.js:503
#: templates/js/translated/sales_order.js:1106
-#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:680 templates/js/translated/stock.js:849
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -5342,8 +5315,8 @@ msgstr ""
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:99
#: part/templates/part/part_pricing.html:114
-#: templates/js/translated/part.js:1069
-#: templates/js/translated/purchase_order.js:1731
+#: templates/js/translated/part.js:1053
+#: templates/js/translated/purchase_order.js:1727
#: templates/js/translated/return_order.js:378
#: templates/js/translated/sales_order.js:852
msgid "Total Cost"
@@ -5403,7 +5376,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5433,47 +5406,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
-#: stock/admin.py:119
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
+#: stock/admin.py:101
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
-#: stock/admin.py:120
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
+#: stock/admin.py:102
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
-#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
-#: templates/js/translated/stock.js:2006
+#: templates/js/translated/part.js:1207 templates/js/translated/part.js:2315
+#: templates/js/translated/stock.js:1968
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
-#: templates/js/translated/part.js:2342
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:183 templates/js/translated/part.js:1212
+#: templates/js/translated/part.js:2321
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5481,23 +5454,23 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
#: part/admin.py:61 part/templates/part/part_base.html:199
#: templates/js/translated/company.js:1679
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:331
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2585
+#: templates/js/translated/part.js:690 templates/js/translated/part.js:2127
#: templates/js/translated/table_filters.js:170
msgid "On Order"
msgstr ""
@@ -5506,107 +5479,107 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:142
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:2147
+#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:124
+#: templates/js/translated/part.js:695 templates/js/translated/part.js:2131
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:950
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:960
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:42 stock/admin.py:116
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:43
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:336
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/part.js:2799 templates/js/translated/search.js:130
+#: templates/js/translated/part.js:2778 templates/js/translated/search.js:130
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5615,7 +5588,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5630,9 +5603,9 @@ msgstr ""
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:134 stock/models.py:187 templates/js/translated/stock.js:2743
+#: part/models.py:134 stock/models.py:124 templates/js/translated/stock.js:2705
#: templates/js/translated/table_filters.js:239
-#: templates/js/translated/table_filters.js:283
+#: templates/js/translated/table_filters.js:259
msgid "Structural"
msgstr ""
@@ -5648,12 +5621,11 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:145 stock/models.py:85 stock/models.py:175
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: part/models.py:145 stock/models.py:113
msgid "Icon"
msgstr ""
-#: part/models.py:146 stock/models.py:176
+#: part/models.py:146 stock/models.py:114
msgid "Icon (optional)"
msgstr ""
@@ -5661,719 +5633,719 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:349 part/serializers.py:964
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
-#: templates/js/translated/part.js:2372
+#: templates/js/translated/part.js:2351
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
-#: templates/js/translated/part.js:2466
+#: templates/js/translated/part.js:2445
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
-#: templates/js/translated/part.js:1082 templates/js/translated/pricing.js:826
+#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/js/translated/part.js:1066 templates/js/translated/pricing.js:826
#: templates/js/translated/pricing.js:950
-#: templates/js/translated/purchase_order.js:1710
-#: templates/js/translated/stock.js:2792
+#: templates/js/translated/purchase_order.js:1706
+#: templates/js/translated/stock.js:2743
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:425
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:432
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2842
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
-#: templates/js/translated/table_filters.js:477
+#: part/models.py:3348 templates/js/translated/part.js:2851
+#: templates/js/translated/table_filters.js:453
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2859
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2866
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
-#: templates/js/translated/table_filters.js:817
+#: part/models.py:3484 templates/js/translated/part.js:1608
+#: templates/js/translated/table_filters.js:781
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1617
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:577
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:342
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:350
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:381
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:381
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:386
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:386
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:391 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:391
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:396
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:396
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:401
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:401
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:411
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:411
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:417
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:417
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:427
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:438
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:444
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:452
+#: part/serializers.py:451
msgid "Selected company is not a valid supplier"
msgstr ""
@@ -6381,186 +6353,186 @@ msgstr ""
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:471
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:479
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
-#: templates/js/translated/part.js:468
+#: part/serializers.py:732 part/templates/part/copy_part.html:9
+#: templates/js/translated/part.js:452
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:732
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:737 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:737
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:742
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:742
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:748
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:749
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:958
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:964
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:970
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:975
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:976
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:981
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:982
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:987
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:988
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:996
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1086
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1087
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1374
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1382
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1383
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1388
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1389
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1394
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1395
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1400
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1401
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1441
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1442
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1472
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1515
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1518
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1521
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1530
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1538
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1559
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
-#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
-#: templates/js/translated/purchase_order.js:2063
+#: part/stocktake.py:225 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1801 templates/js/translated/part.js:1856
+#: templates/js/translated/purchase_order.js:2059
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:295
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:296
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6700,9 +6672,9 @@ msgid "Add stocktake information"
msgstr ""
#: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50
-#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30
+#: stock/admin.py:130 templates/InvenTree/settings/part_stocktake.html:30
#: templates/InvenTree/settings/sidebar.html:53
-#: templates/js/translated/stock.js:2186 users/models.py:39
+#: templates/js/translated/stock.js:2148 users/models.py:39
msgid "Stocktake"
msgstr ""
@@ -6776,7 +6748,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6800,15 +6772,15 @@ msgstr ""
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:659
+#: part/templates/part/detail.html:654
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:667
+#: part/templates/part/detail.html:662
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:752
+#: part/templates/part/detail.html:747
msgid "Add Test Result Template"
msgstr ""
@@ -6889,7 +6861,7 @@ msgstr ""
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:93 templates/js/translated/part.js:2288
+#: part/templates/part/part_base.html:93 templates/js/translated/part.js:2267
msgid "Part actions"
msgstr ""
@@ -6936,8 +6908,8 @@ msgstr ""
#: part/templates/part/part_base.html:148
#: templates/js/translated/company.js:1277
#: templates/js/translated/company.js:1565
-#: templates/js/translated/model_renderers.js:304
-#: templates/js/translated/part.js:811 templates/js/translated/part.js:1215
+#: templates/js/translated/model_renderers.js:291
+#: templates/js/translated/part.js:795 templates/js/translated/part.js:1199
msgid "Inactive"
msgstr ""
@@ -6960,7 +6932,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -6969,7 +6941,7 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:324 templates/js/translated/bom.js:1071
-#: templates/js/translated/part.js:1261 templates/js/translated/part.js:2439
+#: templates/js/translated/part.js:1245 templates/js/translated/part.js:2418
#: templates/js/translated/pricing.js:391
#: templates/js/translated/pricing.js:1054
msgid "Price Range"
@@ -6992,7 +6964,7 @@ msgstr ""
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:474 templates/js/translated/part.js:2282
+#: part/templates/part/part_base.html:474 templates/js/translated/part.js:2261
msgid "part"
msgstr ""
@@ -7066,9 +7038,9 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:51
-#: templates/js/translated/part.js:1239 templates/js/translated/part.js:2140
-#: templates/js/translated/part.js:2387 templates/js/translated/stock.js:1059
-#: templates/js/translated/stock.js:2040 templates/navbar.html:31
+#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2124
+#: templates/js/translated/part.js:2366 templates/js/translated/stock.js:1021
+#: templates/js/translated/stock.js:2002 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -7097,11 +7069,11 @@ msgstr ""
msgid "Refresh Part Pricing"
msgstr ""
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:25 stock/admin.py:129
#: stock/templates/stock/item_base.html:447
#: templates/js/translated/company.js:1693
#: templates/js/translated/company.js:1703
-#: templates/js/translated/stock.js:2216
+#: templates/js/translated/stock.js:2178
msgid "Last Updated"
msgstr ""
@@ -7164,8 +7136,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:701
-#: templates/js/translated/part.js:2135 templates/js/translated/part.js:2137
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:685
+#: templates/js/translated/part.js:2119 templates/js/translated/part.js:2121
msgid "No Stock"
msgstr ""
@@ -7218,11 +7190,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7260,7 +7232,7 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:109
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
@@ -7272,12 +7244,12 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:119
-#: templates/js/translated/purchase_order.js:1391
+#: plugin/base/barcodes/api.py:120
+#: templates/js/translated/purchase_order.js:1387
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:215
+#: plugin/base/barcodes/api.py:217
msgid "No match found for provided value"
msgstr ""
@@ -7295,7 +7267,6 @@ msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:28
#: plugin/builtin/integration/core_notifications.py:34
-#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
msgid "InvenTree contributors"
msgstr ""
@@ -7334,18 +7305,10 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
-#: plugin/builtin/integration/currency_exchange.py:23
-msgid "InvenTree Currency Exchange"
-msgstr ""
-
-#: plugin/builtin/integration/currency_exchange.py:24
-msgid "Default currency exchange integration"
-msgstr ""
-
#: plugin/builtin/labels/inventree_label.py:20
msgid "InvenTree PDF label printer"
msgstr ""
@@ -7362,23 +7325,6 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/installer.py:140
-msgid "Permission denied: only staff users can install plugins"
-msgstr ""
-
-#: plugin/installer.py:186
-msgid "Installed plugin successfully"
-msgstr ""
-
-#: plugin/installer.py:192
-#, python-brace-format
-msgid "Installed plugin into {path}"
-msgstr ""
-
-#: plugin/installer.py:201
-msgid "Plugin installation failed"
-msgstr ""
-
#: plugin/models.py:28
msgid "Plugin Configuration"
msgstr ""
@@ -7403,43 +7349,37 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
-#: templates/js/translated/table_filters.js:500
-msgid "Installed"
-msgstr ""
-
-#: plugin/models.py:138
+#: plugin/models.py:131
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:140
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
-#: templates/js/translated/plugin.js:50
+#: plugin/models.py:166 templates/InvenTree/settings/plugin_settings.html:9
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:217
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:478
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:480
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:482
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7476,184 +7416,148 @@ msgstr ""
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/samples/integration/sample_currency_exchange.py:15
-msgid "Sample currency exchange plugin"
-msgstr ""
-
-#: plugin/samples/integration/sample_currency_exchange.py:18
-msgid "InvenTree Contributors"
-msgstr ""
-
-#: plugin/serializers.py:87
+#: plugin/serializers.py:90
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:88
+#: plugin/serializers.py:91
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:93
+#: plugin/serializers.py:96
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:94
+#: plugin/serializers.py:97
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:97
+#: plugin/serializers.py:100
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:98
+#: plugin/serializers.py:101
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:110
+#: plugin/serializers.py:113
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:112
+#: plugin/serializers.py:115
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:193
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:194
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
-#: report/helpers.py:14
-msgid "A3"
-msgstr ""
-
-#: report/helpers.py:15
-msgid "Legal"
-msgstr ""
-
-#: report/helpers.py:16
-msgid "Letter"
-msgstr ""
-
-#: report/models.py:171
+#: report/models.py:165
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:171
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:178
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:184
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
-msgid "Page size for PDF reports"
-msgstr ""
-
-#: report/models.py:203
-msgid "Landscape"
-msgstr ""
-
-#: report/models.py:204
-msgid "Render report in landscape orientation"
-msgstr ""
-
-#: report/models.py:305
+#: report/models.py:271
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:278
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:299
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:307
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:308
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:369
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:370
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:411
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:412
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:446
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:484
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:522
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:575
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:576
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:580
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:617
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:618
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:625
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:646
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7674,7 +7578,7 @@ msgstr ""
#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527
#: templates/js/translated/pricing.js:596
#: templates/js/translated/pricing.js:834
-#: templates/js/translated/purchase_order.js:2094
+#: templates/js/translated/purchase_order.js:2090
#: templates/js/translated/sales_order.js:1834
msgid "Unit Price"
msgstr ""
@@ -7687,23 +7591,23 @@ msgstr ""
#: report/templates/report/inventree_po_report_base.html:72
#: report/templates/report/inventree_so_report_base.html:72
-#: templates/js/translated/purchase_order.js:1996
+#: templates/js/translated/purchase_order.js:1992
#: templates/js/translated/sales_order.js:1803
msgid "Total"
msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
-#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
-#: templates/js/translated/build.js:2337
-#: templates/js/translated/model_renderers.js:222
+#: stock/models.py:725 stock/templates/stock/item_base.html:312
+#: templates/js/translated/build.js:508 templates/js/translated/build.js:1340
+#: templates/js/translated/build.js:2325
+#: templates/js/translated/model_renderers.js:219
#: templates/js/translated/return_order.js:537
-#: templates/js/translated/return_order.js:721
+#: templates/js/translated/return_order.js:717
#: templates/js/translated/sales_order.js:312
#: templates/js/translated/sales_order.js:1608
#: templates/js/translated/sales_order.js:1693
-#: templates/js/translated/stock.js:596
+#: templates/js/translated/stock.js:562
msgid "Serial Number"
msgstr ""
@@ -7720,12 +7624,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2274 templates/js/translated/stock.js:1437
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2280
msgid "Result"
msgstr ""
@@ -7751,377 +7655,356 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:168
-#: stock/admin.py:122 templates/js/translated/stock.js:700
-#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3079
+#: stock/admin.py:104 templates/js/translated/stock.js:666
+#: templates/js/translated/stock.js:837 templates/js/translated/stock.js:3030
msgid "Serial"
msgstr ""
-#: stock/admin.py:40 stock/admin.py:126
+#: stock/admin.py:39 stock/admin.py:108
msgid "Location ID"
msgstr ""
-#: stock/admin.py:41 stock/admin.py:127
+#: stock/admin.py:40 stock/admin.py:109
msgid "Location Name"
msgstr ""
-#: stock/admin.py:45 stock/templates/stock/location.html:130
+#: stock/admin.py:44 stock/templates/stock/location.html:130
#: stock/templates/stock/location.html:136
msgid "Location Path"
msgstr ""
-#: stock/admin.py:118
+#: stock/admin.py:100
msgid "Stock Item ID"
msgstr ""
-#: stock/admin.py:125
+#: stock/admin.py:107
msgid "Status Code"
msgstr ""
-#: stock/admin.py:128
+#: stock/admin.py:110
msgid "Supplier Part ID"
msgstr ""
-#: stock/admin.py:129
+#: stock/admin.py:111
msgid "Supplier ID"
msgstr ""
-#: stock/admin.py:130
+#: stock/admin.py:112
msgid "Supplier Name"
msgstr ""
-#: stock/admin.py:131
+#: stock/admin.py:113
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:114 stock/models.py:708
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
-#: stock/admin.py:133
+#: stock/admin.py:115
msgid "Build ID"
msgstr ""
-#: stock/admin.py:135
+#: stock/admin.py:117
msgid "Sales Order ID"
msgstr ""
-#: stock/admin.py:136
+#: stock/admin.py:118
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:143
+#: stock/admin.py:125
msgid "Review Needed"
msgstr ""
-#: stock/admin.py:144
+#: stock/admin.py:126
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:131 stock/models.py:789
#: stock/templates/stock/item_base.html:434
-#: templates/js/translated/stock.js:2200
+#: templates/js/translated/stock.js:2162
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:434 templates/js/translated/table_filters.js:403
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:641
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:648
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:676
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:685
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:708
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:56
-msgid "Stock Location type"
-msgstr ""
-
-#: stock/models.py:57
-msgid "Stock Location types"
-msgstr ""
-
-#: stock/models.py:86
-msgid "Default icon for all locations that have no icon set (optional)"
-msgstr ""
-
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:54 stock/models.py:692
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:117 stock/templates/stock/location.html:178
+#: stock/models.py:55 stock/templates/stock/location.html:178
#: templates/InvenTree/search.html:166 templates/js/translated/search.js:178
#: users/models.py:40
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:118 stock/models.py:828
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:119 stock/models.py:829
msgid "Select Owner"
msgstr ""
-#: stock/models.py:189
+#: stock/models.py:126
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:195 templates/js/translated/stock.js:2752
+#: stock/models.py:132 templates/js/translated/stock.js:2714
#: templates/js/translated/table_filters.js:243
msgid "External"
msgstr ""
-#: stock/models.py:196
+#: stock/models.py:133
msgid "This is an external stock location"
msgstr ""
-#: stock/models.py:202 templates/js/translated/stock.js:2761
-#: templates/js/translated/table_filters.js:246
-msgid "Location type"
-msgstr ""
-
-#: stock/models.py:205
-msgid "Stock location type of this location"
-msgstr ""
-
-#: stock/models.py:270
+#: stock/models.py:175
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:557
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:583 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:600
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:610 stock/models.py:619
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:611
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:633
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:639
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:653
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:667
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:677
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:685
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:695
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:702 stock/serializers.py:1239
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:711
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:727
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:741 stock/serializers.py:1224
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:746
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:753
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:755
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:761 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:763
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:774
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:777
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:783
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:790
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:824
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:852
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1378
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1384
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1390
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1393
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1396
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1403 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1474
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1477
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1480
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1483
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1486
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1489
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1496 stock/serializers.py:1135
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1500
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1504
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1508
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1702
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2192
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2250
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2256
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2275
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2281
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2287
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2294
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2300
msgid "Test notes"
msgstr ""
@@ -8133,141 +8016,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1092 stock/serializers.py:1363
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:947
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:951
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:955
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:986
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:992
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1000
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1010 stock/serializers.py:1270
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1099
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1104
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1105
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1110
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1111
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1121
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1210
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1231
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1260
msgid "Stock transaction notes"
msgstr ""
@@ -8308,7 +8191,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3230
+#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3177
msgid "Install Stock Item"
msgstr ""
@@ -8316,7 +8199,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1667
+#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1629
msgid "Add Test Result"
msgstr ""
@@ -8339,17 +8222,17 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:80
-#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1792
+#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1754
msgid "Count stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: templates/js/translated/stock.js:1774
+#: templates/js/translated/stock.js:1736
msgid "Add stock"
msgstr ""
#: stock/templates/stock/item_base.html:83
-#: templates/js/translated/stock.js:1783
+#: templates/js/translated/stock.js:1745
msgid "Remove stock"
msgstr ""
@@ -8358,12 +8241,12 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:89
-#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1801
+#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1763
msgid "Transfer stock"
msgstr ""
#: stock/templates/stock/item_base.html:92
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1817
msgid "Assign to customer"
msgstr ""
@@ -8404,7 +8287,7 @@ msgid "Delete stock item"
msgstr ""
#: stock/templates/stock/item_base.html:170 templates/InvenTree/search.html:139
-#: templates/js/translated/build.js:2105 templates/navbar.html:38
+#: templates/js/translated/build.js:2093 templates/navbar.html:38
msgid "Build"
msgstr ""
@@ -8470,7 +8353,7 @@ msgid "Available Quantity"
msgstr ""
#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/build.js:2362
+#: templates/js/translated/build.js:2350
msgid "No location set"
msgstr ""
@@ -8488,7 +8371,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:438
-#: templates/js/translated/table_filters.js:435
+#: templates/js/translated/table_filters.js:411
msgid "Expired"
msgstr ""
@@ -8498,7 +8381,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:440
-#: templates/js/translated/table_filters.js:441
+#: templates/js/translated/table_filters.js:417
msgid "Stale"
msgstr ""
@@ -8507,7 +8390,7 @@ msgid "No stocktake performed"
msgstr ""
#: stock/templates/stock/item_base.html:508
-#: templates/js/translated/stock.js:1922
+#: templates/js/translated/stock.js:1884
msgid "stock item"
msgstr ""
@@ -8539,7 +8422,7 @@ msgstr ""
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:663
+#: stock/templates/stock/item_base.html:659
msgid "Return to Stock"
msgstr ""
@@ -8617,20 +8500,20 @@ msgstr ""
msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:288
-#: templates/js/translated/stock.js:2543
+#: stock/templates/stock/location.html:279
+#: templates/js/translated/stock.js:2505
msgid "stock location"
msgstr ""
-#: stock/templates/stock/location.html:316
+#: stock/templates/stock/location.html:307
msgid "Scanned stock container into this location"
msgstr ""
-#: stock/templates/stock/location.html:389
+#: stock/templates/stock/location.html:380
msgid "Stock Location QR Code"
msgstr ""
-#: stock/templates/stock/location.html:400
+#: stock/templates/stock/location.html:391
msgid "Link Barcode to Stock Location"
msgstr ""
@@ -8940,7 +8823,7 @@ msgid "Plugins"
msgstr ""
#: templates/InvenTree/settings/plugin.html:41
-#: templates/js/translated/plugin.js:150
+#: templates/js/translated/plugin.js:151
msgid "Install Plugin"
msgstr ""
@@ -8966,7 +8849,7 @@ msgid "Plugin information"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:42
-#: templates/js/translated/plugin.js:85
+#: templates/js/translated/plugin.js:89
msgid "Version"
msgstr ""
@@ -9003,8 +8886,7 @@ msgid "Installation path"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:100
-#: templates/js/translated/plugin.js:67
-#: templates/js/translated/table_filters.js:492
+#: templates/js/translated/plugin.js:77
msgid "Builtin"
msgstr ""
@@ -9012,31 +8894,21 @@ msgstr ""
msgid "This is a builtin plugin which cannot be disabled"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:107
-#: templates/js/translated/plugin.js:71
-#: templates/js/translated/table_filters.js:496
-msgid "Sample"
-msgstr ""
-
-#: templates/InvenTree/settings/plugin_settings.html:108
-msgid "This is a sample plugin"
-msgstr ""
-
-#: templates/InvenTree/settings/plugin_settings.html:113
+#: templates/InvenTree/settings/plugin_settings.html:106
msgid "Commit Author"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:117
+#: templates/InvenTree/settings/plugin_settings.html:110
#: templates/about.html:36
msgid "Commit Date"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:121
+#: templates/InvenTree/settings/plugin_settings.html:114
#: templates/about.html:29
msgid "Commit Hash"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:125
+#: templates/InvenTree/settings/plugin_settings.html:118
msgid "Commit Message"
msgstr ""
@@ -9125,9 +8997,9 @@ msgid "Edit"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:81
-#: templates/js/translated/forms.js:508 templates/js/translated/helpers.js:105
-#: templates/js/translated/part.js:389 templates/js/translated/pricing.js:629
-#: templates/js/translated/stock.js:245 users/models.py:257
+#: templates/js/translated/forms.js:506 templates/js/translated/helpers.js:105
+#: templates/js/translated/part.js:373 templates/js/translated/pricing.js:629
+#: templates/js/translated/stock.js:215 users/models.py:256
msgid "Delete"
msgstr ""
@@ -9162,12 +9034,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:288
-#: templates/js/translated/part.js:1642
+#: templates/js/translated/part.js:1626
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:289
-#: templates/js/translated/part.js:1643
+#: templates/js/translated/part.js:1627
msgid "Delete Template"
msgstr ""
@@ -9175,44 +9047,18 @@ msgstr ""
msgid "Edit Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:329
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:364
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:390
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:420
-msgid "No stock location types found"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:441
-msgid "Location count"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
-msgid "Edit Location Type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:447
-msgid "Delete Location type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:470
-msgid "Delete Location Type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:480
-#: templates/InvenTree/settings/stock.html:35
-msgid "New Location Type"
-msgstr ""
-
#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -9231,9 +9077,9 @@ msgid "Home Page"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:15
-#: templates/js/translated/forms.js:2045 templates/js/translated/tables.js:543
-#: templates/navbar.html:107 templates/search.html:8
-#: templates/search_form.html:6 templates/search_form.html:7
+#: templates/js/translated/tables.js:543 templates/navbar.html:107
+#: templates/search.html:8 templates/search_form.html:6
+#: templates/search_form.html:7
msgid "Search"
msgstr ""
@@ -9266,10 +9112,6 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:31
-msgid "Stock Location Types"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:13
msgid "Account Settings"
msgstr ""
@@ -9579,7 +9421,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:728
+#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:726
msgid "Confirm"
msgstr ""
@@ -9759,26 +9601,18 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
-msgid "Pending Database Migrations"
-msgstr ""
-
-#: templates/base.html:116
-msgid "There are pending database migrations which require attention"
-msgstr ""
-
#: templates/email/build_order_completed.html:9
#: templates/email/new_order_assigned.html:9
#: templates/email/overdue_build_order.html:9
@@ -9807,7 +9641,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2529
msgid "Required Quantity"
msgstr ""
@@ -9821,15 +9655,15 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/part.js:3182
+#: templates/js/translated/part.js:3161
msgid "Minimum Quantity"
msgstr ""
-#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1130
+#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1124
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1131
+#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1125
msgid "No response from the InvenTree server"
msgstr ""
@@ -9841,27 +9675,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1140
+#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1134
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1141
+#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1135
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1145
+#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1139
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1146
+#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1140
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1150
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1144
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1151
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1145
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -9873,27 +9707,19 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1155
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1149
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1156
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1150
msgid "Connection timeout while requesting data from server"
msgstr ""
#: templates/js/translated/api.js:261
-msgid "Error 503: Service Unavailable"
-msgstr ""
-
-#: templates/js/translated/api.js:262
-msgid "The server is currently unavailable"
-msgstr ""
-
-#: templates/js/translated/api.js:265
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:266
+#: templates/js/translated/api.js:262
msgid "Error code"
msgstr ""
@@ -9962,7 +9788,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:252
-#: templates/js/translated/modals.js:1120
+#: templates/js/translated/modals.js:1114
msgid "Invalid server response"
msgstr ""
@@ -9986,7 +9812,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1117
msgid "Remove stock item"
msgstr ""
@@ -10057,8 +9883,8 @@ msgid "Row Data"
msgstr ""
#: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700
-#: templates/js/translated/modals.js:74 templates/js/translated/modals.js:628
-#: templates/js/translated/modals.js:752 templates/js/translated/modals.js:1060
+#: templates/js/translated/modals.js:71 templates/js/translated/modals.js:622
+#: templates/js/translated/modals.js:746 templates/js/translated/modals.js:1054
#: templates/js/translated/purchase_order.js:802 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
@@ -10176,7 +10002,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2485
+#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2473
msgid "Variant stock allowed"
msgstr ""
@@ -10184,74 +10010,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2567
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2571
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
-#: templates/js/translated/part.js:1253
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2573
+#: templates/js/translated/part.js:1237
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2575
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2558
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2458
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
@@ -10295,13 +10121,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:357 templates/js/translated/stock.js:119
-#: templates/js/translated/stock.js:294
+#: templates/js/translated/build.js:357 templates/js/translated/stock.js:118
+#: templates/js/translated/stock.js:264
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:359 templates/js/translated/stock.js:121
-#: templates/js/translated/stock.js:296
+#: templates/js/translated/build.js:359 templates/js/translated/stock.js:120
+#: templates/js/translated/stock.js:266
msgid "Latest serial number"
msgstr ""
@@ -10353,13 +10179,13 @@ msgstr ""
msgid "Deallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:572 templates/js/translated/build.js:700
-#: templates/js/translated/build.js:826
+#: templates/js/translated/build.js:572 templates/js/translated/build.js:696
+#: templates/js/translated/build.js:818
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:573 templates/js/translated/build.js:701
-#: templates/js/translated/build.js:827
+#: templates/js/translated/build.js:573 templates/js/translated/build.js:697
+#: templates/js/translated/build.js:819
msgid "At least one build output must be selected"
msgstr ""
@@ -10367,265 +10193,264 @@ msgstr ""
msgid "Selected build outputs will be marked as complete"
msgstr ""
-#: templates/js/translated/build.js:591 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:849
+#: templates/js/translated/build.js:591 templates/js/translated/build.js:721
+#: templates/js/translated/build.js:841
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:619
+#: templates/js/translated/build.js:615
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:716
+#: templates/js/translated/build.js:712
msgid "Selected build outputs will be marked as scrapped"
msgstr ""
-#: templates/js/translated/build.js:718
+#: templates/js/translated/build.js:714
msgid "Scrapped output are marked as rejected"
msgstr ""
-#: templates/js/translated/build.js:719
+#: templates/js/translated/build.js:715
msgid "Allocated stock items will no longer be available"
msgstr ""
-#: templates/js/translated/build.js:720
+#: templates/js/translated/build.js:716
msgid "The completion status of the build order will not be adjusted"
msgstr ""
-#: templates/js/translated/build.js:751
+#: templates/js/translated/build.js:743
msgid "Scrap Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:841
+#: templates/js/translated/build.js:833
msgid "Selected build outputs will be deleted"
msgstr ""
-#: templates/js/translated/build.js:843
+#: templates/js/translated/build.js:835
msgid "Build output data will be permanently deleted"
msgstr ""
-#: templates/js/translated/build.js:844
+#: templates/js/translated/build.js:836
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: templates/js/translated/build.js:862
+#: templates/js/translated/build.js:854
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:941
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:978 templates/js/translated/build.js:2326
+#: templates/js/translated/build.js:970 templates/js/translated/build.js:2314
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:984
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1006
msgid "Complete outputs"
msgstr ""
-#: templates/js/translated/build.js:1032
+#: templates/js/translated/build.js:1024
msgid "Scrap outputs"
msgstr ""
-#: templates/js/translated/build.js:1050
+#: templates/js/translated/build.js:1042
msgid "Delete outputs"
msgstr ""
-#: templates/js/translated/build.js:1104
+#: templates/js/translated/build.js:1096
msgid "build output"
msgstr ""
-#: templates/js/translated/build.js:1105
+#: templates/js/translated/build.js:1097
msgid "build outputs"
msgstr ""
-#: templates/js/translated/build.js:1109
+#: templates/js/translated/build.js:1101
msgid "Build output actions"
msgstr ""
-#: templates/js/translated/build.js:1278
+#: templates/js/translated/build.js:1270
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1371
+#: templates/js/translated/build.js:1363
msgid "Allocated Lines"
msgstr ""
-#: templates/js/translated/build.js:1385
+#: templates/js/translated/build.js:1377
msgid "Required Tests"
msgstr ""
-#: templates/js/translated/build.js:1557
+#: templates/js/translated/build.js:1549
#: templates/js/translated/purchase_order.js:627
#: templates/js/translated/sales_order.js:1168
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1558
+#: templates/js/translated/build.js:1550
#: templates/js/translated/sales_order.js:1169
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1621
+#: templates/js/translated/build.js:1613
#: templates/js/translated/sales_order.js:1118
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1698
+#: templates/js/translated/build.js:1690
msgid "All Parts Allocated"
msgstr ""
-#: templates/js/translated/build.js:1699
+#: templates/js/translated/build.js:1691
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:1713
+#: templates/js/translated/build.js:1705
#: templates/js/translated/sales_order.js:1183
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1741
+#: templates/js/translated/build.js:1733
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1752
+#: templates/js/translated/build.js:1744
#: templates/js/translated/sales_order.js:1280
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1817
#: templates/js/translated/sales_order.js:1359
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1922
+#: templates/js/translated/build.js:1914
msgid "Automatic Stock Allocation"
msgstr ""
-#: templates/js/translated/build.js:1923
+#: templates/js/translated/build.js:1915
msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
msgstr ""
-#: templates/js/translated/build.js:1925
+#: templates/js/translated/build.js:1917
msgid "If a location is specified, stock will only be allocated from that location"
msgstr ""
-#: templates/js/translated/build.js:1926
+#: templates/js/translated/build.js:1918
msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
msgstr ""
-#: templates/js/translated/build.js:1927
+#: templates/js/translated/build.js:1919
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:1958
+#: templates/js/translated/build.js:1946
msgid "Allocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:2064
+#: templates/js/translated/build.js:2052
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2099 templates/js/translated/build.js:2464
-#: templates/js/translated/forms.js:2041 templates/js/translated/forms.js:2057
-#: templates/js/translated/part.js:2311 templates/js/translated/part.js:2737
-#: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681
+#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2452
+#: templates/js/translated/part.js:2290 templates/js/translated/part.js:2716
+#: templates/js/translated/stock.js:1915 templates/js/translated/stock.js:2643
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:2113
+#: templates/js/translated/build.js:2101
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:2159
+#: templates/js/translated/build.js:2147
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2195 templates/js/translated/stock.js:3013
+#: templates/js/translated/build.js:2183 templates/js/translated/stock.js:2964
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:2210
+#: templates/js/translated/build.js:2198
msgid "group"
msgstr ""
-#: templates/js/translated/build.js:2371
+#: templates/js/translated/build.js:2359
#: templates/js/translated/sales_order.js:1643
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:2372
+#: templates/js/translated/build.js:2360
#: templates/js/translated/sales_order.js:1644
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:2387
+#: templates/js/translated/build.js:2375
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:2399
+#: templates/js/translated/build.js:2387
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:2440
+#: templates/js/translated/build.js:2428
msgid "build line"
msgstr ""
-#: templates/js/translated/build.js:2441
+#: templates/js/translated/build.js:2429
msgid "build lines"
msgstr ""
-#: templates/js/translated/build.js:2459
+#: templates/js/translated/build.js:2447
msgid "No build lines found"
msgstr ""
-#: templates/js/translated/build.js:2489 templates/js/translated/part.js:787
-#: templates/js/translated/part.js:1199
+#: templates/js/translated/build.js:2477 templates/js/translated/part.js:771
+#: templates/js/translated/part.js:1183
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/build.js:2524
+#: templates/js/translated/build.js:2512
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2573
+#: templates/js/translated/build.js:2561
#: templates/js/translated/sales_order.js:1914
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:2575
+#: templates/js/translated/build.js:2563
#: templates/js/translated/sales_order.js:1912
msgid "Sufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:2622
+#: templates/js/translated/build.js:2610
msgid "Consumable Item"
msgstr ""
-#: templates/js/translated/build.js:2627
+#: templates/js/translated/build.js:2615
msgid "Tracked item"
msgstr ""
-#: templates/js/translated/build.js:2634
+#: templates/js/translated/build.js:2622
#: templates/js/translated/sales_order.js:2013
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:2639 templates/js/translated/stock.js:1836
+#: templates/js/translated/build.js:2627 templates/js/translated/stock.js:1798
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:2643
+#: templates/js/translated/build.js:2631
#: templates/js/translated/sales_order.js:2007
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:2647
+#: templates/js/translated/build.js:2635
msgid "Remove stock allocation"
msgstr ""
@@ -10772,7 +10597,7 @@ msgid "Delete Parameters"
msgstr ""
#: templates/js/translated/company.js:1181
-#: templates/js/translated/company.js:1469 templates/js/translated/part.js:2239
+#: templates/js/translated/company.js:1469 templates/js/translated/part.js:2218
msgid "Order parts"
msgstr ""
@@ -10789,34 +10614,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:1269
-#: templates/js/translated/company.js:1557 templates/js/translated/part.js:795
-#: templates/js/translated/part.js:1207
+#: templates/js/translated/company.js:1557 templates/js/translated/part.js:779
+#: templates/js/translated/part.js:1191
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:1273
-#: templates/js/translated/company.js:1561 templates/js/translated/part.js:799
-#: templates/js/translated/part.js:1211
+#: templates/js/translated/company.js:1561 templates/js/translated/part.js:783
+#: templates/js/translated/part.js:1195
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:1393 templates/js/translated/part.js:1461
+#: templates/js/translated/company.js:1393 templates/js/translated/part.js:1445
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:1428 templates/js/translated/part.js:1524
+#: templates/js/translated/company.js:1428 templates/js/translated/part.js:1508
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:1429 templates/js/translated/part.js:1525
+#: templates/js/translated/company.js:1429 templates/js/translated/part.js:1509
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:1446 templates/js/translated/part.js:1430
+#: templates/js/translated/company.js:1446 templates/js/translated/part.js:1414
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:1455 templates/js/translated/part.js:1546
+#: templates/js/translated/company.js:1455 templates/js/translated/part.js:1530
msgid "Delete Parameter"
msgstr ""
@@ -10912,61 +10737,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:371 templates/js/translated/forms.js:386
-#: templates/js/translated/forms.js:400 templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:373
+#: templates/js/translated/forms.js:371
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:388
+#: templates/js/translated/forms.js:386
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:402
+#: templates/js/translated/forms.js:400
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:416
+#: templates/js/translated/forms.js:414
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:754
+#: templates/js/translated/forms.js:752
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:855
+#: templates/js/translated/forms.js:853
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1403 templates/modals.html:19
+#: templates/js/translated/forms.js:1401 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1857
+#: templates/js/translated/forms.js:1855
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:2161 templates/js/translated/search.js:239
+#: templates/js/translated/forms.js:2071 templates/js/translated/search.js:239
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2375
+#: templates/js/translated/forms.js:2285
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2832
+#: templates/js/translated/forms.js:2742
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2832
+#: templates/js/translated/forms.js:2742
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2844
+#: templates/js/translated/forms.js:2754
msgid "Select Columns"
msgstr ""
@@ -11026,62 +10851,62 @@ msgstr ""
msgid "Labels sent to printer"
msgstr ""
-#: templates/js/translated/modals.js:58 templates/js/translated/modals.js:158
-#: templates/js/translated/modals.js:683
+#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:152
+#: templates/js/translated/modals.js:677
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:63 templates/js/translated/modals.js:157
-#: templates/js/translated/modals.js:751 templates/js/translated/modals.js:1059
+#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:151
+#: templates/js/translated/modals.js:745 templates/js/translated/modals.js:1053
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:156
+#: templates/js/translated/modals.js:150
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:445
+#: templates/js/translated/modals.js:439
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:596
+#: templates/js/translated/modals.js:590
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:682
+#: templates/js/translated/modals.js:676
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:740
+#: templates/js/translated/modals.js:734
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:1011
+#: templates/js/translated/modals.js:1005
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:1011
+#: templates/js/translated/modals.js:1005
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:1023
+#: templates/js/translated/modals.js:1017
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1120
+#: templates/js/translated/modals.js:1114
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1135
+#: templates/js/translated/modals.js:1129
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1136
+#: templates/js/translated/modals.js:1130
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1159
+#: templates/js/translated/modals.js:1153
msgid "Error requesting form data"
msgstr ""
@@ -11091,7 +10916,7 @@ msgstr ""
#: templates/js/translated/news.js:38
#: templates/js/translated/notification.js:46
-#: templates/js/translated/part.js:1601
+#: templates/js/translated/part.js:1585
msgid "ID"
msgstr ""
@@ -11140,7 +10965,7 @@ msgid "Delete Line"
msgstr ""
#: templates/js/translated/order.js:281
-#: templates/js/translated/purchase_order.js:1969
+#: templates/js/translated/purchase_order.js:1965
msgid "No line items found"
msgstr ""
@@ -11172,339 +10997,339 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:305
+#: templates/js/translated/part.js:297
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:329 templates/js/translated/stock.js:175
+#: templates/js/translated/part.js:313 templates/js/translated/stock.js:146
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:349
+#: templates/js/translated/part.js:333
msgid "Create Part Category"
msgstr ""
-#: templates/js/translated/part.js:352
+#: templates/js/translated/part.js:336
msgid "Create new category after this one"
msgstr ""
-#: templates/js/translated/part.js:353
+#: templates/js/translated/part.js:337
msgid "Part category created"
msgstr ""
-#: templates/js/translated/part.js:367
+#: templates/js/translated/part.js:351
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:380
+#: templates/js/translated/part.js:364
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:385
+#: templates/js/translated/part.js:369
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:378
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:398
+#: templates/js/translated/part.js:382
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:403
+#: templates/js/translated/part.js:387
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:427
+#: templates/js/translated/part.js:411
msgid "Create Part"
msgstr ""
-#: templates/js/translated/part.js:429
+#: templates/js/translated/part.js:413
msgid "Create another part after this one"
msgstr ""
-#: templates/js/translated/part.js:430
+#: templates/js/translated/part.js:414
msgid "Part created successfully"
msgstr ""
-#: templates/js/translated/part.js:458
+#: templates/js/translated/part.js:442
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:444
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:471
+#: templates/js/translated/part.js:455
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:512
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:513
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:527
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:545
+#: templates/js/translated/part.js:529
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:546
+#: templates/js/translated/part.js:530
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:531
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:538
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:590
+#: templates/js/translated/part.js:574
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:592
+#: templates/js/translated/part.js:576
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:597
+#: templates/js/translated/part.js:581
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:599
+#: templates/js/translated/part.js:583
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:616
+#: templates/js/translated/part.js:600
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:626
+#: templates/js/translated/part.js:610
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:629
+#: templates/js/translated/part.js:613
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:654
+#: templates/js/translated/part.js:638
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:682
-#: templates/js/translated/table_filters.js:743
+#: templates/js/translated/part.js:666
+#: templates/js/translated/table_filters.js:707
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:685
+#: templates/js/translated/part.js:669
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:745
+#: templates/js/translated/part.js:729
msgid "Demand"
msgstr ""
-#: templates/js/translated/part.js:768
+#: templates/js/translated/part.js:752
msgid "Unit"
msgstr ""
-#: templates/js/translated/part.js:791 templates/js/translated/part.js:1203
+#: templates/js/translated/part.js:775 templates/js/translated/part.js:1187
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:803
+#: templates/js/translated/part.js:787
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:807
+#: templates/js/translated/part.js:791
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:886
+#: templates/js/translated/part.js:870
msgid "Schedule generation of a new stocktake report."
msgstr ""
-#: templates/js/translated/part.js:886
+#: templates/js/translated/part.js:870
msgid "Once complete, the stocktake report will be available for download."
msgstr ""
-#: templates/js/translated/part.js:894
+#: templates/js/translated/part.js:878
msgid "Generate Stocktake Report"
msgstr ""
-#: templates/js/translated/part.js:898
+#: templates/js/translated/part.js:882
msgid "Stocktake report scheduled"
msgstr ""
-#: templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1031
msgid "No stocktake information available"
msgstr ""
-#: templates/js/translated/part.js:1105 templates/js/translated/part.js:1141
+#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1125
msgid "Edit Stocktake Entry"
msgstr ""
-#: templates/js/translated/part.js:1109 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:1093 templates/js/translated/part.js:1135
msgid "Delete Stocktake Entry"
msgstr ""
-#: templates/js/translated/part.js:1278
+#: templates/js/translated/part.js:1262
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1596
+#: templates/js/translated/part.js:1580
msgid "No part parameter templates found"
msgstr ""
-#: templates/js/translated/part.js:1659
+#: templates/js/translated/part.js:1643
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/js/translated/part.js:1671
+#: templates/js/translated/part.js:1655
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1663
msgid "Delete Part Parameter Template"
msgstr ""
-#: templates/js/translated/part.js:1713
-#: templates/js/translated/purchase_order.js:1637
+#: templates/js/translated/part.js:1697
+#: templates/js/translated/purchase_order.js:1633
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/part.js:1856
-#: templates/js/translated/purchase_order.js:2132
-#: templates/js/translated/return_order.js:753
+#: templates/js/translated/part.js:1840
+#: templates/js/translated/purchase_order.js:2128
+#: templates/js/translated/return_order.js:749
#: templates/js/translated/sales_order.js:1872
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/part.js:1901
-#: templates/js/translated/purchase_order.js:2199
+#: templates/js/translated/part.js:1885
+#: templates/js/translated/purchase_order.js:2195
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/part.js:1964
+#: templates/js/translated/part.js:1948
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1986
+#: templates/js/translated/part.js:1970
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:2074 templates/js/translated/part.js:2501
+#: templates/js/translated/part.js:2058 templates/js/translated/part.js:2480
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:2195
+#: templates/js/translated/part.js:2179
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:2200
+#: templates/js/translated/part.js:2184
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:2230
+#: templates/js/translated/part.js:2209
msgid "Set category"
msgstr ""
-#: templates/js/translated/part.js:2283
+#: templates/js/translated/part.js:2262
msgid "parts"
msgstr ""
-#: templates/js/translated/part.js:2379
+#: templates/js/translated/part.js:2358
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:2526 templates/js/translated/part.js:2656
-#: templates/js/translated/stock.js:2640
+#: templates/js/translated/part.js:2505 templates/js/translated/part.js:2635
+#: templates/js/translated/stock.js:2602
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:2542
+#: templates/js/translated/part.js:2521
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:2640
+#: templates/js/translated/part.js:2619
msgid "No subcategories found"
msgstr ""
-#: templates/js/translated/part.js:2676 templates/js/translated/stock.js:2660
+#: templates/js/translated/part.js:2655 templates/js/translated/stock.js:2622
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2756
+#: templates/js/translated/part.js:2735
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2772
+#: templates/js/translated/part.js:2751
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2849
+#: templates/js/translated/part.js:2828
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2900 templates/js/translated/stock.js:1436
+#: templates/js/translated/part.js:2879 templates/js/translated/stock.js:1398
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2901 templates/js/translated/stock.js:1437
-#: templates/js/translated/stock.js:1699
+#: templates/js/translated/part.js:2880 templates/js/translated/stock.js:1399
+#: templates/js/translated/stock.js:1661
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2905
+#: templates/js/translated/part.js:2884
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2921
+#: templates/js/translated/part.js:2900
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2935
+#: templates/js/translated/part.js:2914
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:3014 templates/js/translated/part.js:3015
+#: templates/js/translated/part.js:2993 templates/js/translated/part.js:2994
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:3017
+#: templates/js/translated/part.js:2996
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:3023
+#: templates/js/translated/part.js:3002
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:3073
+#: templates/js/translated/part.js:3052
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:3079
+#: templates/js/translated/part.js:3058
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:3175
+#: templates/js/translated/part.js:3154
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:3191
+#: templates/js/translated/part.js:3170
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:3236
+#: templates/js/translated/part.js:3215
msgid "Minimum Stock Level"
msgstr ""
@@ -11512,47 +11337,51 @@ msgstr ""
msgid "No plugins found"
msgstr ""
-#: templates/js/translated/plugin.js:57
-msgid "This plugin is no longer installed"
-msgstr ""
-
-#: templates/js/translated/plugin.js:59
+#: templates/js/translated/plugin.js:54
msgid "This plugin is active"
msgstr ""
-#: templates/js/translated/plugin.js:61
-msgid "This plugin is installed but not active"
+#: templates/js/translated/plugin.js:56
+msgid "This plugin is not active"
msgstr ""
-#: templates/js/translated/plugin.js:116 templates/js/translated/plugin.js:185
+#: templates/js/translated/plugin.js:62
+msgid "Plugin Description"
+msgstr ""
+
+#: templates/js/translated/plugin.js:81
+msgid "Sample"
+msgstr ""
+
+#: templates/js/translated/plugin.js:117 templates/js/translated/plugin.js:183
msgid "Disable Plugin"
msgstr ""
-#: templates/js/translated/plugin.js:118 templates/js/translated/plugin.js:185
+#: templates/js/translated/plugin.js:119 templates/js/translated/plugin.js:183
msgid "Enable Plugin"
msgstr ""
-#: templates/js/translated/plugin.js:157
+#: templates/js/translated/plugin.js:158
msgid "The Plugin was installed"
msgstr ""
-#: templates/js/translated/plugin.js:176
+#: templates/js/translated/plugin.js:174
msgid "Are you sure you want to enable this plugin?"
msgstr ""
-#: templates/js/translated/plugin.js:180
+#: templates/js/translated/plugin.js:178
msgid "Are you sure you want to disable this plugin?"
msgstr ""
-#: templates/js/translated/plugin.js:188
+#: templates/js/translated/plugin.js:186
msgid "Enable"
msgstr ""
-#: templates/js/translated/plugin.js:188
+#: templates/js/translated/plugin.js:186
msgid "Disable"
msgstr ""
-#: templates/js/translated/plugin.js:202
+#: templates/js/translated/plugin.js:200
msgid "Plugin updated"
msgstr ""
@@ -11749,80 +11578,80 @@ msgstr ""
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/purchase_order.js:1318
-#: templates/js/translated/return_order.js:558
+#: templates/js/translated/purchase_order.js:1314
+#: templates/js/translated/return_order.js:554
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1319
+#: templates/js/translated/purchase_order.js:1315
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1387
+#: templates/js/translated/purchase_order.js:1383
msgid "Scan Item Barcode"
msgstr ""
-#: templates/js/translated/purchase_order.js:1388
+#: templates/js/translated/purchase_order.js:1384
msgid "Scan barcode on incoming item (must not match any existing stock items)"
msgstr ""
-#: templates/js/translated/purchase_order.js:1402
+#: templates/js/translated/purchase_order.js:1398
msgid "Invalid barcode data"
msgstr ""
-#: templates/js/translated/purchase_order.js:1664
+#: templates/js/translated/purchase_order.js:1660
#: templates/js/translated/return_order.js:283
#: templates/js/translated/sales_order.js:771
#: templates/js/translated/sales_order.js:995
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/purchase_order.js:1726
+#: templates/js/translated/purchase_order.js:1722
#: templates/js/translated/return_order.js:351
#: templates/js/translated/sales_order.js:848
#: templates/js/translated/sales_order.js:1008
msgid "Items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1822
+#: templates/js/translated/purchase_order.js:1818
msgid "All selected Line items will be deleted"
msgstr ""
-#: templates/js/translated/purchase_order.js:1840
+#: templates/js/translated/purchase_order.js:1836
msgid "Delete selected Line items?"
msgstr ""
-#: templates/js/translated/purchase_order.js:1895
+#: templates/js/translated/purchase_order.js:1891
#: templates/js/translated/sales_order.js:2067
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:1910
+#: templates/js/translated/purchase_order.js:1906
#: templates/js/translated/return_order.js:473
-#: templates/js/translated/return_order.js:666
+#: templates/js/translated/return_order.js:662
#: templates/js/translated/sales_order.js:2080
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:1921
-#: templates/js/translated/return_order.js:679
+#: templates/js/translated/purchase_order.js:1917
+#: templates/js/translated/return_order.js:675
#: templates/js/translated/sales_order.js:2091
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2203
+#: templates/js/translated/purchase_order.js:2199
#: templates/js/translated/sales_order.js:2021
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2204
-#: templates/js/translated/return_order.js:798
+#: templates/js/translated/purchase_order.js:2200
+#: templates/js/translated/return_order.js:794
#: templates/js/translated/sales_order.js:2022
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2205
-#: templates/js/translated/return_order.js:802
+#: templates/js/translated/purchase_order.js:2201
+#: templates/js/translated/return_order.js:798
#: templates/js/translated/sales_order.js:2028
msgid "Delete line item"
msgstr ""
@@ -11885,16 +11714,16 @@ msgstr ""
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/return_order.js:559
+#: templates/js/translated/return_order.js:555
msgid "Receive Return Order Items"
msgstr ""
-#: templates/js/translated/return_order.js:690
+#: templates/js/translated/return_order.js:686
#: templates/js/translated/sales_order.js:2227
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/return_order.js:795
+#: templates/js/translated/return_order.js:791
msgid "Mark item as received"
msgstr ""
@@ -12037,7 +11866,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:1620
#: templates/js/translated/sales_order.js:1707
-#: templates/js/translated/stock.js:1744
+#: templates/js/translated/stock.js:1706
msgid "Shipped to customer"
msgstr ""
@@ -12099,472 +11928,464 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:98
+#: templates/js/translated/stock.js:97
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:129
+#: templates/js/translated/stock.js:128
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:139
-msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on"
-msgstr ""
-
-#: templates/js/translated/stock.js:152
+#: templates/js/translated/stock.js:137
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:166
-msgid "Add Location type"
-msgstr ""
-
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:172
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:217
+#: templates/js/translated/stock.js:187
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:219
+#: templates/js/translated/stock.js:189
msgid "Create another location after this one"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:190
msgid "Stock location created"
msgstr ""
-#: templates/js/translated/stock.js:234
+#: templates/js/translated/stock.js:204
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:241
+#: templates/js/translated/stock.js:211
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:250
+#: templates/js/translated/stock.js:220
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:254
+#: templates/js/translated/stock.js:224
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:259
+#: templates/js/translated/stock.js:229
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:313
+#: templates/js/translated/stock.js:283
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:349
+#: templates/js/translated/stock.js:319
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: templates/js/translated/stock.js:362
+#: templates/js/translated/stock.js:328
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:334
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:439
+#: templates/js/translated/stock.js:405
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:459
+#: templates/js/translated/stock.js:425
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:475
+#: templates/js/translated/stock.js:441
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:480
+#: templates/js/translated/stock.js:446
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:501
+#: templates/js/translated/stock.js:467
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:543
+#: templates/js/translated/stock.js:509
msgid "Create another item after this one"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:521
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:534
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:593
+#: templates/js/translated/stock.js:559
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:564
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:614
+#: templates/js/translated/stock.js:580
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:634
+#: templates/js/translated/stock.js:600
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:643
+#: templates/js/translated/stock.js:609
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:751
+#: templates/js/translated/stock.js:717
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:752
+#: templates/js/translated/stock.js:718
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:829
+#: templates/js/translated/stock.js:795
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:830
+#: templates/js/translated/stock.js:796
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:832
+#: templates/js/translated/stock.js:798
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:833
+#: templates/js/translated/stock.js:799
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:928
+#: templates/js/translated/stock.js:890
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:929
+#: templates/js/translated/stock.js:891
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1024
+#: templates/js/translated/stock.js:986
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:1025
+#: templates/js/translated/stock.js:987
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:1031
+#: templates/js/translated/stock.js:993
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:1032
+#: templates/js/translated/stock.js:994
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:1036
+#: templates/js/translated/stock.js:998
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:1037
+#: templates/js/translated/stock.js:999
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:1041
+#: templates/js/translated/stock.js:1003
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:1042 users/models.py:253
+#: templates/js/translated/stock.js:1004 users/models.py:252
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1008
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1105
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1105
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3258
+#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:3205
msgid "Select Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1178
+#: templates/js/translated/stock.js:1140
msgid "Select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1224
+#: templates/js/translated/stock.js:1186
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1322
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1362
+#: templates/js/translated/stock.js:1324
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1367
+#: templates/js/translated/stock.js:1329
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1429
+#: templates/js/translated/stock.js:1391
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1394
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/stock.js:1418
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:1482
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1682
+#: templates/js/translated/stock.js:1644
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1704
+#: templates/js/translated/stock.js:1666
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1736
+#: templates/js/translated/stock.js:1698
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1740
+#: templates/js/translated/stock.js:1702
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1748
+#: templates/js/translated/stock.js:1710
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1754
+#: templates/js/translated/stock.js:1716
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1772
msgid "Change stock status"
msgstr ""
-#: templates/js/translated/stock.js:1819
+#: templates/js/translated/stock.js:1781
msgid "Merge stock"
msgstr ""
-#: templates/js/translated/stock.js:1868
+#: templates/js/translated/stock.js:1830
msgid "Delete stock"
msgstr ""
-#: templates/js/translated/stock.js:1923
+#: templates/js/translated/stock.js:1885
msgid "stock items"
msgstr ""
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1890
msgid "Scan to location"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1901
msgid "Stock Actions"
msgstr ""
-#: templates/js/translated/stock.js:1983
+#: templates/js/translated/stock.js:1945
msgid "Load installed items"
msgstr ""
-#: templates/js/translated/stock.js:2061
+#: templates/js/translated/stock.js:2023
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:2066
+#: templates/js/translated/stock.js:2028
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:2069
+#: templates/js/translated/stock.js:2031
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2034
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:2074
+#: templates/js/translated/stock.js:2036
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:2076
+#: templates/js/translated/stock.js:2038
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2041
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2081
+#: templates/js/translated/stock.js:2043
msgid "Stock item has been consumed by a build order"
msgstr ""
-#: templates/js/translated/stock.js:2085
+#: templates/js/translated/stock.js:2047
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:2087
+#: templates/js/translated/stock.js:2049
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:2092
+#: templates/js/translated/stock.js:2054
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2056
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:2096
+#: templates/js/translated/stock.js:2058
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:2100
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/stock.js:2062
+#: templates/js/translated/table_filters.js:326
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:2265
+#: templates/js/translated/stock.js:2227
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2312
+#: templates/js/translated/stock.js:2274
msgid "Stock Value"
msgstr ""
-#: templates/js/translated/stock.js:2440
+#: templates/js/translated/stock.js:2402
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2544
+#: templates/js/translated/stock.js:2506
msgid "stock locations"
msgstr ""
-#: templates/js/translated/stock.js:2699
+#: templates/js/translated/stock.js:2661
msgid "Load Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2768
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2772
msgid "No changes"
msgstr ""
-#: templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:2784
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2855
+#: templates/js/translated/stock.js:2806
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2823
msgid "Build order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2838
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2904
+#: templates/js/translated/stock.js:2855
msgid "Sales Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2921
+#: templates/js/translated/stock.js:2872
msgid "Return Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2940
+#: templates/js/translated/stock.js:2891
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2958
+#: templates/js/translated/stock.js:2909
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2976
+#: templates/js/translated/stock.js:2927
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2984
+#: templates/js/translated/stock.js:2935
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:3056
+#: templates/js/translated/stock.js:3007
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:3106 templates/js/translated/stock.js:3141
+#: templates/js/translated/stock.js:3057 templates/js/translated/stock.js:3092
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3163
+#: templates/js/translated/stock.js:3110
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:3184
+#: templates/js/translated/stock.js:3131
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:3185
+#: templates/js/translated/stock.js:3132
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:3187
+#: templates/js/translated/stock.js:3134
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3188
+#: templates/js/translated/stock.js:3135
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:3189
+#: templates/js/translated/stock.js:3136
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:3190
+#: templates/js/translated/stock.js:3137
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:3203
+#: templates/js/translated/stock.js:3150
msgid "Select part to install"
msgstr ""
-#: templates/js/translated/stock.js:3259
+#: templates/js/translated/stock.js:3206
msgid "Select one or more stock items"
msgstr ""
-#: templates/js/translated/stock.js:3272
+#: templates/js/translated/stock.js:3219
msgid "Selected stock items"
msgstr ""
-#: templates/js/translated/stock.js:3276
+#: templates/js/translated/stock.js:3223
msgid "Change Stock Status"
msgstr ""
@@ -12573,23 +12394,23 @@ msgid "Has project code"
msgstr ""
#: templates/js/translated/table_filters.js:89
-#: templates/js/translated/table_filters.js:601
-#: templates/js/translated/table_filters.js:613
-#: templates/js/translated/table_filters.js:654
+#: templates/js/translated/table_filters.js:565
+#: templates/js/translated/table_filters.js:577
+#: templates/js/translated/table_filters.js:618
msgid "Order status"
msgstr ""
#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:618
-#: templates/js/translated/table_filters.js:644
-#: templates/js/translated/table_filters.js:659
+#: templates/js/translated/table_filters.js:582
+#: templates/js/translated/table_filters.js:608
+#: templates/js/translated/table_filters.js:623
msgid "Outstanding"
msgstr ""
#: templates/js/translated/table_filters.js:102
-#: templates/js/translated/table_filters.js:524
-#: templates/js/translated/table_filters.js:626
-#: templates/js/translated/table_filters.js:667
+#: templates/js/translated/table_filters.js:488
+#: templates/js/translated/table_filters.js:590
+#: templates/js/translated/table_filters.js:631
msgid "Assigned to me"
msgstr ""
@@ -12610,12 +12431,12 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:775
+#: templates/js/translated/table_filters.js:739
msgid "Has Pricing"
msgstr ""
#: templates/js/translated/table_filters.js:234
-#: templates/js/translated/table_filters.js:345
+#: templates/js/translated/table_filters.js:321
msgid "Include sublocations"
msgstr ""
@@ -12623,210 +12444,210 @@ msgstr ""
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:267
-msgid "Has location type"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:278
-#: templates/js/translated/table_filters.js:279
-#: templates/js/translated/table_filters.js:707
+#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:255
+#: templates/js/translated/table_filters.js:671
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:755
+#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:719
msgid "Subscribed"
msgstr ""
-#: templates/js/translated/table_filters.js:298
-#: templates/js/translated/table_filters.js:380
+#: templates/js/translated/table_filters.js:274
+#: templates/js/translated/table_filters.js:356
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:301
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:277
+#: templates/js/translated/table_filters.js:363
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:302
-#: templates/js/translated/table_filters.js:388
+#: templates/js/translated/table_filters.js:278
+#: templates/js/translated/table_filters.js:364
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:305
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:281
+#: templates/js/translated/table_filters.js:367
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:306
-#: templates/js/translated/table_filters.js:392
+#: templates/js/translated/table_filters.js:282
+#: templates/js/translated/table_filters.js:368
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:309
-#: templates/js/translated/table_filters.js:310
-#: templates/js/translated/table_filters.js:383
-#: templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:286
+#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:360
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:314
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:381
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:325
-#: templates/js/translated/table_filters.js:696
+#: templates/js/translated/table_filters.js:301
+#: templates/js/translated/table_filters.js:660
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:302
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:307
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:311
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:312
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:317
msgid "Stock is available for use"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:322
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:351
+#: templates/js/translated/table_filters.js:327
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:356
+#: templates/js/translated/table_filters.js:332
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:360
+#: templates/js/translated/table_filters.js:336
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:361
+#: templates/js/translated/table_filters.js:337
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:365
+#: templates/js/translated/table_filters.js:341
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:366
+#: templates/js/translated/table_filters.js:342
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:346
+msgid "Installed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:347
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:376
+#: templates/js/translated/table_filters.js:352
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:396
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:372
+#: templates/js/translated/table_filters.js:373
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:400
+#: templates/js/translated/table_filters.js:376
msgid "Has batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:409
+#: templates/js/translated/table_filters.js:385
msgid "Stock item is tracked by either batch code or serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:414
+#: templates/js/translated/table_filters.js:390
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:415
+#: templates/js/translated/table_filters.js:391
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:419
+#: templates/js/translated/table_filters.js:395
msgid "Expiry Date before"
msgstr ""
-#: templates/js/translated/table_filters.js:423
+#: templates/js/translated/table_filters.js:399
msgid "Expiry Date after"
msgstr ""
-#: templates/js/translated/table_filters.js:436
+#: templates/js/translated/table_filters.js:412
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:442
+#: templates/js/translated/table_filters.js:418
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:456
+#: templates/js/translated/table_filters.js:432
msgid "Test Passed"
msgstr ""
-#: templates/js/translated/table_filters.js:460
+#: templates/js/translated/table_filters.js:436
msgid "Include Installed Items"
msgstr ""
-#: templates/js/translated/table_filters.js:511
+#: templates/js/translated/table_filters.js:475
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:708
+#: templates/js/translated/table_filters.js:672
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:713
+#: templates/js/translated/table_filters.js:677
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:721
+#: templates/js/translated/table_filters.js:685
msgid "Available stock"
msgstr ""
-#: templates/js/translated/table_filters.js:729
-#: templates/js/translated/table_filters.js:825
+#: templates/js/translated/table_filters.js:693
+#: templates/js/translated/table_filters.js:789
msgid "Has Units"
msgstr ""
-#: templates/js/translated/table_filters.js:730
+#: templates/js/translated/table_filters.js:694
msgid "Part has defined units"
msgstr ""
-#: templates/js/translated/table_filters.js:734
+#: templates/js/translated/table_filters.js:698
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:735
+#: templates/js/translated/table_filters.js:699
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:739
+#: templates/js/translated/table_filters.js:703
msgid "In stock"
msgstr ""
-#: templates/js/translated/table_filters.js:747
+#: templates/js/translated/table_filters.js:711
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/table_filters.js:759
+#: templates/js/translated/table_filters.js:723
msgid "Has stocktake entries"
msgstr ""
-#: templates/js/translated/table_filters.js:821
+#: templates/js/translated/table_filters.js:785
msgid "Has Choices"
msgstr ""
@@ -13117,34 +12938,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:240
+#: users/models.py:239
msgid "Permission set"
msgstr ""
-#: users/models.py:248
+#: users/models.py:247
msgid "Group"
msgstr ""
-#: users/models.py:251
+#: users/models.py:250
msgid "View"
msgstr ""
-#: users/models.py:251
+#: users/models.py:250
msgid "Permission to view items"
msgstr ""
-#: users/models.py:253
+#: users/models.py:252
msgid "Permission to add items"
msgstr ""
-#: users/models.py:255
+#: users/models.py:254
msgid "Change"
msgstr ""
-#: users/models.py:255
+#: users/models.py:254
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:257
+#: users/models.py:256
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 648f75953f..c85cb602a1 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:28\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-13 01:16\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Language: es_MX\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "endpoint API no encontrado"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "El usuario no tiene permiso para ver este modelo"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Ningún valor proporcionado"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Detalles del error pueden encontrarse en el panel de administración"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Ingrese la fecha"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Ingrese la fecha"
msgid "Notes"
msgstr "Notas"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "El valor '{name}' no aparece en formato de patrón"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "El valor proporcionado no coincide con el patrón requerido: "
@@ -103,99 +98,99 @@ msgstr "Confirmar contraseña nueva"
msgid "Old password"
msgstr "Contraseña anterior"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Email (de nuevo)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Confirmación de dirección de email"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Debe escribir el mismo correo electrónico cada vez."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "La dirección de correo electrónico principal proporcionada no es válida."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "El dominio de correo electrónico proporcionado no está aprobado."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "Registro deshabilitado."
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "No se ha proporcionado un número de serie"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Serie duplicada"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Rango de grupo no válido: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "El rango del grupo {g} supera la cantidad permitida ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Secuencia de grupo no válida: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Numeros de serie no encontrados"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Número único de número de serie ({s}) debe coincidir con la cantidad ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Eliminar etiquetas HTML de este valor"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Error de conexión"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "El servidor respondió con código de estado no válido"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Se ha producido una excepción"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "El servidor respondió con un valor de longitud de contenido inválido"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "El tamaño de la imagen es demasiado grande"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "La descarga de imagen excedió el tamaño máximo"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "El servidor remoto devolvió una respuesta vacía"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "La URL proporcionada no es un archivo de imagen válido"
@@ -211,64 +206,64 @@ msgstr "[{site.name}] Iniciar sesión en la aplicación"
msgid "Email"
msgstr "Correo electrónico"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "Los metadatos deben ser un objeto diccionario de python"
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Metadatos del complemento"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "Campo de metadatos JSON, para uso por complementos externos"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Patrón con formato incorrecto"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Clave de formato especificado desconocida"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Falta la clave de formato necesaria"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "El campo de servidor no puede estar vacío"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "La referencia debe coincidir con la expresión regular {pattern}"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "El número de referencia es demasiado grande"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Archivo no encontrado"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Falta enlace externo"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Archivo adjunto"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Seleccionar archivo para adjuntar"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Seleccionar archivo para adjuntar"
msgid "Link"
msgstr "Enlace"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Enlace a URL externa"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Comentario"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Comentario del archivo"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Usuario"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "fecha de subida"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "El nombre del archivo no debe estar vacío"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Directorio de archivos adjuntos no válido"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "El nombre del archivo contiene el carácter ilegal '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Falta el nombre de extensión del archivo"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Ya existe un archivo adjunto con este nombre"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Error al cambiar el nombre del archivo"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Los nombres duplicados no pueden existir bajo el mismo padre"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Selección no válida"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Selección no válida"
msgid "Name"
msgstr "Nombre"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Nombre"
msgid "Description"
msgstr "Descripción"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Descripción (opcional)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "padre"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Ruta"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Notas de Markdown (opcional)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Datos de código de barras"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Datos de código de barras de terceros"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Hash del Código de barras"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Hash único de datos de código de barras"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Código de barras existente encontrado"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Error de servidor"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Se ha registrado un error por el servidor."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Debe ser un número válido"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Moneda"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Seleccionar moneda de las opciones disponibles"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Nombre de Archivo"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Valor inválido"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Archivo de datos"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Seleccione el archivo para subir"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Tipo de archivo no soportado"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "El archivo es demasiado grande"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "No hay columnas en el archivo"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "No hay filas de datos en el archivo"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "No se proporcionaron filas de datos"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "No hay columnas de datos proporcionadas"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Falta la columna requerida: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Columna duplicada: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL de imagen remota"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "La descarga de imágenes desde la URL remota no está habilitada"
@@ -639,7 +634,7 @@ msgstr "Chino (Simplificado)"
msgid "Chinese (Traditional)"
msgstr "Chino (Tradicional)"
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Falló la comprobación en segundo plano del worker"
@@ -688,7 +683,7 @@ msgstr "Devuelto"
msgid "In Progress"
msgstr "En progreso"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Reembolso"
msgid "Reject"
msgstr "Rechazo"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr "Unidad física inválida"
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "No es un código de moneda válido"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "El valor excedente no debe ser negativo"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "El excedente no debe superar el 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Valor no válido para sobrecarga"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Editar datos del usuario"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Configurar contraseña"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Los campos de contraseña deben coincidir"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Contraseña incorrecta proporcionada"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Información del sistema"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Acerca de InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "La compilación debe cancelarse antes de poder ser eliminada"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "Consumible"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "Consumible"
msgid "Optional"
msgstr "Opcional"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr "Rastreado"
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Asignadas"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Opción no válida para la construcción padre"
msgid "Build Order Reference"
msgstr "Número de orden de construcción o armado"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Orden de Construcción o Armado a la que se asigna"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Orden de Construcción o Armado a la que se asigna"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Referencia de orden de venta"
msgid "SalesOrder to which this build is allocated"
msgstr "Orden de Venta a la que se asigna"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Estado de la construcción"
msgid "Build status code"
msgstr "Código de estado de construcción"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Numero de lote"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Número de lote de este producto final"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Fecha límite de finalización"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Fecha de finalización"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "El usuario que emitió esta orden"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Usuario o grupo responsable de esta orden de construcción"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Prioridad de construcción"
msgid "Priority of this build order"
msgstr "Prioridad de esta orden de construcción"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "Código del proyecto"
msgid "Project code for this build order"
msgstr "Código de proyecto para esta orden de ensamble"
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "El pedido {build} ha sido procesado"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Pedido #[order] ha sido procesado"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "No se ha especificado salida de construcción"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "La construcción de la salida ya está completa"
-#: build/models.py:767
+#: build/models.py:772
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:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "La cantidad debe ser mayor que cero"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr "La cantidad no puede ser mayor que la cantidad de salida"
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr "Ensamblar equipo"
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr "Ensamblar equipo"
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr "Ensamblar equipo"
msgid "Quantity"
msgstr "Cantidad"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr "Cantidad requerida para orden de ensamble"
-#: build/models.py:1354
+#: build/models.py:1371
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:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Artículo de stock sobreasignado"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Cantidad asignada debe ser mayor que cero"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "La cantidad debe ser 1 para el stock serializado"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr "El artículo de almacén selelccionado no coincide con la línea BOM"
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr "El artículo de almacén selelccionado no coincide con la línea BOM"
msgid "Stock Item"
msgstr "Artículo de stock"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Producto original de stock"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Cantidad de stock a asignar para construir"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Instalar en"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Artículo de stock de destino"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Resultado de la construcción o armado"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "La salida de construcción no coincide con la construcción padre"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "La parte de salida no coincide con la parte de la Orden de Construcción"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Esta salida de construcción ya ha sido completada"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "Esta salida de construcción no está completamente asignada"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Ingrese la cantidad para la producción de la construcción"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Cantidad entera requerida para partes rastreables"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Cantidad entera requerida, ya que la factura de materiales contiene partes rastreables"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Números de serie"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Introduzca los números de serie de salidas de construcción"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Autoasignar Números de Serie"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Asignar automáticamente los artículos requeridos con números de serie coincidentes"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "Los siguientes números seriales ya existen o son inválidos"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "Debe proporcionarse una lista de salidas de construcción"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "Debe proporcionarse una lista de salidas de construcción"
msgid "Location"
msgstr "Ubicación"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr "Ubicación de almacén para salidas descartadas"
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr "Descartar asignaciones"
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Descartar cualquier asignación de existencias para las salidas descartadas"
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr "Razón para descartar la salida de ensamble(s)"
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "Ubicación para las salidas de construcción completadas"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr "Ubicación para las salidas de construcción completadas"
msgid "Status"
msgstr "Estado"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "Aceptar Asignación Incompleta"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Completar salidas si el inventario no se ha asignado completamente"
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr "Quitar inventario asignado"
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Resta cualquier existencia que ya ha sido asignado a esta versión"
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "Eliminar salidas incompletas"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr "Eliminar cualquier salida de construcción que no se haya completado"
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr "No permitido"
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr "Aceptar como consumido por este pedido de construcción"
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr "Liberar antes de completar esta orden de construcción"
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr "Stock sobreasignado"
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Cómo quieres manejar los artículos extra de inventario asignados a la orden de construcción"
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr "Algunos artículos de inventario han sido sobreasignados"
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "Aceptar no asignado"
-#: build/serializers.py:653
+#: build/serializers.py:657
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:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "El stock requerido no ha sido completamente asignado"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Aceptar incompleto"
-#: build/serializers.py:669
+#: build/serializers.py:673
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:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "La cantidad de construcción requerida aún no se ha completado"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "El orden de construcción tiene salidas incompletas"
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr "Linea de ensamble"
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "Resultado de la construcción o armado"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "La salida de la construcción debe apuntar a la misma construcción"
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr "Crear partida"
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part debe apuntar a la misma parte que la orden de construcción"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "El artículo debe estar en stock"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Cantidad disponible ({q}) excedida"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "La salida de la construcción debe especificarse para la asignación de partes rastreadas"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "La salida de construcción no se puede especificar para la asignación de partes no rastreadas"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "Este artículo de stock ya ha sido asignado a esta salida de construcción"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "Debe proporcionarse la adjudicación de artículos"
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Ubicación de inventario donde las partes deben ser obtenidas (dejar en blanco para tomar de cualquier ubicación)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Excluir ubicación"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Excluir artículos de stock de esta ubicación seleccionada"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "Stock intercambiable"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Los artículos de inventario en múltiples ubicaciones se pueden utilizar de forma intercambiable"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Sustituir stock"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "Permitir la asignación de partes sustitutas"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr "Elementos opcionales"
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr "Asignar artículos de la BOM opcionales para construir la orden"
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "Stock requerido para la orden de construcción"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr "Orden de construcción atrasada"
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr "El pedido de construcción {bo} está atrasado"
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Stock no ha sido asignado completamente a este pedido de construcción"
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr "Salidas completadas"
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr "Fuente de stock"
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:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Destinación"
@@ -2014,1372 +2013,1372 @@ msgstr "Actualizado"
msgid "Timestamp of last update"
msgstr "Fecha y hora de la última actualización"
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr "Código único del proyecto"
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr "Descripción del proyecto"
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr "Clave de configuración (debe ser única - mayúsculas y minúsculas)"
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr "Valor de ajuste"
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr "El valor elegido no es una opción válida"
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr "El valor debe ser un valor booleano"
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr "El valor debe ser un entero"
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "Cadena de clave debe ser única"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Sin grupo"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr "Un dominio vacío no está permitido."
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nombre de dominio inválido: {domain}"
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Reinicio requerido"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr "Se ha cambiado una configuración que requiere un reinicio del servidor"
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr "Nombre de la instancia del servidor"
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr "Descriptor de cadena para la instancia del servidor"
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr "Usar nombre de instancia"
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr "Utilice el nombre de la instancia en la barra de título"
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr "Restringir mostrar 'acerca de'"
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr "Mostrar la modal `about` solo para superusuarios"
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Nombre de empresa"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Nombre interno de empresa"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "URL Base"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "URL base para la instancia del servidor"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Moneda predeterminada"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr "Seleccione la moneda base para los cálculos de precios"
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "días"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Descargar desde URL"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Permitir la descarga de imágenes y archivos remotos desde la URL externa"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr "Límite de tamaño de descarga"
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr "Tamaño máximo de descarga permitido para la imagen remota"
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr "Agente de usuario usado para descargar desde la URL"
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr "Permitir reemplazar el agente de usuario utilizado para descargar imágenes y archivos desde URL externa (dejar en blanco para el valor predeterminado)"
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Requiere confirmación"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Requiere confirmación explícita del usuario para ciertas acciones."
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr "Profundidad del árbol"
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr "Profundidad de árbol predeterminada para treeview. Los niveles más profundos pueden ser cargados perezosamente a medida que son necesarios."
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr "Actualizar intervalo de actualización"
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr "Con qué frecuencia comprobar actualizaciones (establecer a cero para desactivar)"
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Copia de seguridad automática"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Activar copia de seguridad automática de los archivos de base de datos y medios"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Intervalo de respaldo automático"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr "Especificar número de días entre eventos automatizados de copia de seguridad"
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr "Intervalo de eliminación de tareas"
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr "Los resultados de las tareas en segundo plano se eliminarán después del número especificado de días"
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr "Intervalo de eliminación de registro de errores"
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr "Los registros de errores se eliminarán después del número especificado de días"
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr "Intervalo de eliminación de notificaciones"
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr "Las notificaciones de usuario se eliminarán después del número especificado de días"
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Soporte de código de barras"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr "Retraso de entrada de código de barras"
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr "Tiempo de retraso en la lectura de códigos de barras"
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr "Soporte para Webcam de código de barras"
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr "Permitir escaneo de código de barras a través de webcam en el navegador"
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr "Revisiones de partes"
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr "Habilitar campo de revisión para parte"
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr "Regex IPN"
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr "Patrón de expresión regular para IPN de la parte coincidente"
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Permitir IPN duplicado"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr "Permitir que varias partes compartan el mismo IPN"
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "Permitir editar IPN"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr "Permite cambiar el valor de IPN mientras se edita una parte"
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr "Copiar parte de datos BOM"
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr "Copiar datos BOM por defecto al duplicar una parte"
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr "Copiar parámetros de parte"
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr "Copiar datos de parámetro por defecto al duplicar una parte"
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr "Copiar parte de datos de prueba"
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr "Copiar datos de parámetro por defecto al duplicar una parte"
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr "Copiar plantillas de parámetros de categoría"
-#: common/models.py:1313
+#: common/models.py:1324
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:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Plantilla"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "Las partes son plantillas por defecto"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Montaje"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto"
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Componente"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "Las partes pueden ser usadas como subcomponentes por defecto"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Comprable"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Las partes son comprables por defecto"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Vendible"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Las partes se pueden vender por defecto"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Rastreable"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Las partes son rastreables por defecto"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Virtual"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Las partes son virtuales por defecto"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr "Mostrar importación en vistas"
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr "Mostrar el asistente de importación en algunas vistas de partes"
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Mostrar partes relacionadas"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Mostrar partes relacionadas para una parte"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr "Datos iniciales de existencias"
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr "Permitir la creación del stock inicial al añadir una nueva parte"
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Datos iniciales del proveedor"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr "Permitir la creación de datos iniciales del proveedor al agregar una nueva parte"
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Formato de visualización de Nombre de Parte"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Formato para mostrar el nombre de la parte"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr "Icono por defecto de la categoría de parte"
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr "Icono por defecto de la categoría de parte (vacío significa que no hay icono)"
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr "Forzar unidades de parámetro"
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr "Si se proporcionan unidades, los valores de parámetro deben coincidir con las unidades especificadas"
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr "Mínimo de lugares decimales en el precio"
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr "Número mínimo de decimales a mostrar al procesar los datos de precios"
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr "Máximo de lugares decimales en el precio"
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr "Número máximo de decimales a mostrar al procesar los datos de precios"
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr "Usar precios de proveedor"
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr "Incluir descuentos de precios del proveedor en los cálculos generales de precios"
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr "Anulación del historial de compra"
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr "El precio histórico de compra anula los descuentos de precios del proveedor"
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr "Usar precio del artículo de almacén"
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr "Usar los precios de los datos de inventario introducidos manualmente para los cálculos de precios"
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr "Edad del precio del artículo de almacén"
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr "Excluir artículos de almacén anteriores a este número de días de los cálculos de precios"
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr "Usar precios variantes"
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr "Incluir variantes de precios en los cálculos generales de precios"
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr "Solo variantes activas"
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr "Usar solo partes de variantes activas para calcular los precios de variantes"
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr "Intervalo de reconstrucción de precios"
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr "Número de días antes de que el precio de la parte se actualice automáticamente"
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Precios internos"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr "Habilitar precios internos para partes"
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr "Anulación del precio interno"
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr "Si está disponible, los precios internos anulan los cálculos del rango de precios"
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Habilitar impresión de etiquetas"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Habilitar impresión de etiquetas desde la interfaz web"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "PPP de la imagen de etiqueta"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr "Resolución DPI al generar archivos de imagen que suministrar para etiquetar complementos de impresión"
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr "Habilitar informes"
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr "Habilitar generación de informes"
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Modo de depuración"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr "Generar informes en modo de depuración (salida HTML)"
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Tamaño de página"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Tamaño de página predeterminado para informes PDF"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr "Habilitar informes de prueba"
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr "Habilitar generación de informes de prueba"
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr "Adjuntar informes de prueba"
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr "Al imprimir un informe de prueba, adjuntar una copia del informe de prueba al artículo de almacén asociado"
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr "Seriales únicos globalmente"
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr "Los números de serie para los artículos de inventario deben ser únicos globalmente"
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr "Autollenar números de serie"
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr "Autorellenar números de serie en formularios"
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr "Eliminar existencias agotadas"
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr "Determina el comportamiento predeterminado cuando un artículo de almacén es agotado"
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr "Plantilla de código de lote"
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr "Plantilla para generar códigos de lote por defecto para artículos de almacén"
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr "Expiración de stock"
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr "Habilitar la funcionalidad de expiración de stock"
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr "Vender existencias caducadas"
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr "Permitir venta de existencias caducadas"
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr "Tiempo histórico de Stock"
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr "Número de días de artículos de stock se consideran obsoletos antes de caducar"
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr "Crear Stock Caducado"
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr "Permitir crear con stock caducado"
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr "Control de Stock"
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos"
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr "Icono por defecto de ubicación de almacén"
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr "Icono por defecto de ubicación de almacén (vacío significa que no hay icono)"
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la Orden de Ensamblado"
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr "Habilitar órdenes de devolución"
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr "Habilitar la funcionalidad de orden de devolución en la interfaz de usuario"
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr "Patrón de referencia de orden de devolución"
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la orden de devolución"
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr "Editar ordenes de devolución completadas"
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr "Permitir la edición de ordenes de devolución después de que hayan sido completados"
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la orden de venta"
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr "Habilitar función de contraseña olvidada"
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión"
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr "Habilitar registro"
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión"
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "Habilitar SSO"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "Habilitar SSO en las páginas de inicio de sesión"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr "Habilitar registro SSO"
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Activar autoregistro a través de SSO para usuarios en las páginas de inicio de sesión"
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Email requerido"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr "Requiere usuario para suministrar correo al registrarse"
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr "Auto-rellenar usuarios SSO"
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO"
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "Correo dos veces"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr "Al registrarse pregunte dos veces a los usuarios por su correo"
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Contraseña dos veces"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña"
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Dominios permitidos"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr "Grupo al registrarse"
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr "Grupo al que se asignan nuevos usuarios al registrarse"
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr "Forzar MFA"
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr "Los usuarios deben utilizar seguridad multifactor."
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr "Comprobar complementos al iniciar"
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Comprobar que todos los complementos están instalados en el arranque - habilitar en entornos de contenedores"
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr "Habilitar integración de URL"
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr "Habilitar plugins para añadir rutas de URL"
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr "Habilitar integración de navegación"
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr "Habilitar plugins para integrar en la navegación"
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr "Habilitar integración de la aplicación"
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr "Habilitar plugins para añadir aplicaciones"
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr "Habilitar integración de programación"
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr "Habilitar plugins para ejecutar tareas programadas"
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr "Habilitar integración de eventos"
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr "Habilitar plugins para responder a eventos internos"
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr "Habilitar códigos de proyecto"
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr "Habilitar códigos de proyecto para rastrear proyectos"
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr "Intervalo de borrado de informe"
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr "Tecla de ajustes (debe ser única - mayúsculas y minúsculas"
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr "Ocultar partes inactivas"
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Ocultar partes inactivas en los resultados mostrados en la página de inicio"
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr "Mostrar partes suscritas"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr "Mostrar las partes suscritas en la página principal"
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "Mostrar categorías suscritas"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr "Mostrar categorías de partes suscritas en la página de inicio"
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Mostrar últimas partes"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Mostrar las últimas partes en la página de inicio"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr "Mostrar BOMs no validadas"
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr "Mostrar BOMs que esperan validación en la página de inicio"
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr "Mostrar cambios recientes de stock"
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio"
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Mostrar stock bajo"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Mostrar artículos de stock bajo en la página de inicio"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr "Mostrar stock agotado"
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr "Mostrar artículos agotados en la página de inicio"
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Mostrar stock necesario"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr "Mostrar artículos de stock necesarios para trabajos en la página de inicio"
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr "Mostrar stock caducado"
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr "Mostrar artículos de stock caducados en la página de inicio"
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr "Mostrar stock obsoleto"
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr "Mostrar artículos de stock obsoletos en la página de inicio"
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr "Mostrar trabajos pendientes"
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr "Mostrar trabajos pendientes en la página de inicio"
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr "Mostrar trabajos vencidos"
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr "Mostrar trabajos pendientes en la página de inicio"
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr "Mostrar Órdenes de Compra Pendientes"
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr "Mostrar las OC destacadas en la página de inicio"
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr "Mostrar OC atrasadas"
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr "Mostrar las OC vencidas en la página de inicio"
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr "Mostrar OV pendiemtes"
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr "Mostrar OV pendientes en la página de inicio"
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr "Mostrar OV atrasadas"
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr "Mostrar OV atrasadas en la página de inicio"
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr "Mostrar novedades"
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr "Mostrar las últimas novedades de InvenTree en la página de inicio"
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr "Mostrar etiqueta interior"
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Mostrar etiquetas PDF en el navegador, en lugar de descargar como un archivo"
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr "Impresora predeterminada"
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr "Mostrar informe en línea"
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Mostrar informes PDF en el navegador, en lugar de descargar como un archivo"
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr "Buscar partes"
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr "Buscar partes de proveedor"
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr "Ocultar Partes Inactivas"
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr "Buscar categorías"
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr "Buscar inventario"
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr "Buscar ubicaciones"
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr "Mostrar ubicaciones de almacén en la ventana de vista previa de búsqueda"
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr "Buscar empresas"
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr "Mostrar empresas en la ventana de vista previa de búsqueda"
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr "Buscar órdenes de compra"
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr "Buscar órdenes de venta"
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr "Buscar órdenes de devolución"
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr "Resultados de la vista previa"
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr "Búsqueda Regex"
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr "Habilitar expresiones regulares en las consultas de búsqueda"
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr "Búsqueda por palabra completa"
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr "Las consultas de búsqueda devuelven resultados para palabras enteras coincidentes"
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "Mostrar cantidad en formularios"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr "Mostrar la cantidad de partes disponibles en algunos formularios"
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr "Formularios de cierre de teclas de escape"
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr "Usa la clave de escape para cerrar formularios modales"
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr "Barra de navegación fija"
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr "La posición de la barra de navegación se fija en la parte superior de la pantalla"
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr "Formato de Fecha"
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr "Formato preferido para mostrar fechas"
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Planificación de partes"
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr "Cantidad de salto de precio"
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Precio"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr "Precio unitario a la cantidad especificada"
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr "Punto final en el que se recibe este webhook"
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr "Nombre para este webhook"
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr "Nombre para este webhook"
msgid "Active"
msgstr "Activo"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr "Está activo este webhook"
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr "Token"
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr "Token para el acceso"
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr "Clave"
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr "Secreto compartido para HMAC"
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr "ID de mensaje"
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr "Identificador único para este mensaje"
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr "Host"
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr "Servidor desde el cual se recibió este mensaje"
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr "Encabezado"
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr "Encabezado del mensaje"
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr "Cuerpo"
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr "Cuerpo de este mensaje"
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr "Endpoint en el que se recibió este mensaje"
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr "Trabajado en"
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr "¿El trabajo en este mensaje ha terminado?"
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr "Id"
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Título"
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr "Publicado"
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "Autor"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Resumen"
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr "Leer"
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr "¿Esta noticia ya fue leída?"
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr "¿Esta noticia ya fue leída?"
msgid "Image"
msgstr "Imágen"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr "Archivo de imagen"
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr "Nombre de unidad"
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Símbolo"
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr "Símbolo de unidad opcional"
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definición"
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr "Definición de unidad"
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Nuevo {verbose_name}"
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr "Se ha creado un nuevo pedido y se le ha asignado"
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr "Artículos Recibidos"
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr "Los artículos han sido recibidos contra una orden de compra"
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr "Los artículos han sido recibidos contra una orden de devolución"
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr "Error generado por el complemento"
@@ -3572,7 +3571,7 @@ msgstr "Falló la coincidencia de campos"
msgid "Parts imported"
msgstr "Partes importadas"
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Correo electrónico de contacto"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "¿Esta empresa fabrica partes?"
msgid "Default currency used for this company"
msgstr "Moneda predeterminada utilizada para esta empresa"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Empresa"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr "Seleccionar empresa"
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr "Título de dirección"
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr "Título que describe la entrada de dirección"
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr "Dirección principal"
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr "Establecer como dirección principal"
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr "Línea 1"
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr "Dirección línea 1"
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr "Línea 2"
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr "Dirección línea 2"
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr "Código postal"
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr "Ciudad/región"
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr "Código postal de ciudad/región"
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr "Estado/provincia"
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr "Estado o provincia"
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr "País"
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr "Dirección de país"
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr "Notas de envío de mensajería"
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr "Notas para el mensajero de envío"
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr "Notas de envío internas"
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr "Notas de envío para uso interno"
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr "Enlace a información de dirección (externa)"
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Parte base"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Seleccionar parte"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr "Seleccionar parte"
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Seleccionar fabricante"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Seleccionar fabricante"
msgid "MPN"
msgstr "MPN"
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Número de parte de fabricante"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr "URL para el enlace de parte del fabricante externo"
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr "Descripción de la parte del fabricante"
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Parte del fabricante"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Nombre del parámetro"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Valor"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Valor del parámetro"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Unidades"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Unidades de parámetro"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr "Las unidades de paquete deben ser compatibles con las unidades de partes de base"
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr "Las unidades de paquete deben ser mayor que cero"
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte base"
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte
msgid "Supplier"
msgstr "Proveedor"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Seleccionar proveedor"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Seleccionar proveedor"
msgid "SKU"
msgstr "SKU"
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr "Unidad de mantenimiento de stock de proveedores"
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "Seleccionar parte del fabricante"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr "URL del enlace de parte del proveedor externo"
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr "Descripción de la parte del proveedor"
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Nota"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "costo base"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)"
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr "Paquetes"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr "Embalaje de partes"
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr "Embalaje de partes"
msgid "Pack Quantity"
msgstr "Cantidad de paquete"
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Cantidad total suministrada en un solo paquete. Dejar vacío para artículos individuales."
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr "múltiple"
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr "Pedido múltiple"
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr "Cantidad disponible del proveedor"
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr "Disponibilidad actualizada"
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr "Fecha de última actualización de los datos de disponibilidad"
@@ -4014,10 +4011,10 @@ msgstr "Descargar desde URL"
msgid "Delete image"
msgstr "Borrar imagen"
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Cliente"
msgid "Uses default currency"
msgstr "Usa la moneda predeterminada"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr "Direcciones de la empresa"
msgid "Add Address"
msgstr "Añadir dirección"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Fabricantes"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr "No hay información del fabricante disponible"
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr "Direcciones"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr "Enlazar código de barras a la parte del proveedor"
msgid "Update Part Availability"
msgstr "Actualizar disponibilidad de parte"
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr "Elementos de stock"
msgid "Supplier Part Pricing"
msgstr "Precio de parte del proveedor"
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Nuevo Proveedor"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Nuevo Fabricante"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Clientes"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Nuevo Cliente"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Empresas"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Nueva empresa"
@@ -4425,7 +4422,7 @@ msgstr "Etiqueta"
msgid "Label template file"
msgstr "Archivo de plantilla de etiqueta"
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Habilitado"
@@ -4449,7 +4446,7 @@ msgstr "Altura [mm]"
msgid "Label height, specified in mm"
msgstr "Altura de la etiqueta, especificada en mm"
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr "Patrón de Nombre de archivo"
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Filtros"
@@ -4481,7 +4478,7 @@ msgstr "Código QR"
msgid "QR code"
msgstr "Código QR"
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr "Código QR"
msgid "Total Price"
msgstr "Precio Total"
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr "No se encontró ninguna orden de compra coincidente"
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr "No se encontró ninguna orden de compra coincidente"
msgid "Purchase Order"
msgstr "Orden de compra"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr "Orden de compra"
msgid "Return Order"
msgstr "Orden de devolución"
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr "Desconocido"
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr "Precio total para este pedido"
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr "Moneda de pedido"
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr "Moneda para este pedido (dejar en blanco para utilizar el valor predeterminado de la empresa)"
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr "El contacto no coincide con la empresa seleccionada"
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr "Descripción del pedido (opcional)"
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr "Seleccione el código del proyecto para este pedido"
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr "Enlace a Url externa"
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Fecha esperada para la entrega del pedido. El pedido se retrasará después de esta fecha."
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr "Creado por"
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "Usuario o grupo responsable de este pedido"
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr "Punto de contacto para este pedido"
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr "Dirección de la empresa para este pedido"
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Referencia del pedido"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr "Estado de la orden de compra"
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr "Empresa de la cual se están encargando los artículos"
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr "Referencia del proveedor"
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr "Código de referencia de pedido del proveedor"
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr "recibido por"
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr "Fecha de emisión"
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr "Fecha de expedición del pedido"
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr "La fecha de pedido fue completada"
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr "El proveedor de la parte debe coincidir con el proveedor de PO"
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr "La cantidad debe ser un número positivo"
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr "Empresa a la que se venden los artículos"
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr "Referencia del cliente "
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr "Código de referencia de pedido del cliente"
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr "Fecha de envío"
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr "enviado por"
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr "El pedido no se puede completar porque no se han asignado partes"
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr "Sólo una orden abierta puede ser marcada como completa"
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "El pedido no se puede completar porque hay envíos incompletos"
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr "El pedido no se puede completar porque hay partidas incompletas"
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr "Cantidad del artículo"
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr "Referencia de partida"
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr "Notas de partida"
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Fecha objetivo para esta partida (dejar en blanco para usar la fecha de destino de la orden)"
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr "Descripción de partida (opcional)"
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr "Contexto"
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr "Contexto adicional para esta línea"
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr "Precio unitario"
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr "La parte del proveedor debe coincidir con el proveedor"
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr "eliminado"
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr "Orden"
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr "Parte del proveedor"
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr "Parte del proveedor"
msgid "Received"
msgstr "Recibido"
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr "Número de artículos recibidos"
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Precio de Compra"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr "Precio de compra unitario"
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr "¿Dónde quiere el comprador almacenar este objeto?"
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr "Una parte virtual no puede ser asignada a un pedido de venta"
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr "Sólo las partes vendibles pueden ser asignadas a un pedido de venta"
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "Precio de Venta"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr "Precio de venta unitario"
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr "Cantidad enviada"
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr "Fecha del envío"
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr "Fecha de entrega"
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr "Fecha de entrega del envío"
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr "Revisado por"
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr "Usuario que revisó este envío"
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Envío"
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr "Número de envío"
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr "Número de Seguimiento"
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr "Información de seguimiento del envío"
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr "Número de factura"
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr "Número de referencia para la factura asociada"
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr "El envío ya ha sido enviado"
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr "El envío no tiene artículos de stock asignados"
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr "El artículo de stock no ha sido asignado"
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr "No se puede asignar el artículo de stock a una línea con una parte diferente"
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr "No se puede asignar stock a una línea sin una parte"
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La cantidad de asignación no puede exceder la cantidad de stock"
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr "La cantidad debe ser 1 para el stock serializado"
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr "La orden de venta no coincide con el envío"
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr "El envío no coincide con el pedido de venta"
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr "Línea"
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr "Referencia del envío del pedido de venta"
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr "Ítem"
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr "Seleccionar artículo de stock para asignar"
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr "Especificar la cantidad de asignación de stock"
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr "Referencia de la orden de devolución"
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr "Empresa de la cual se están devolviendo los artículos"
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr "Estado de la orden de devolución"
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr "Sólo los artículos serializados pueden ser asignados a una orden de devolución"
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr "Seleccionar el artículo a devolver del cliente"
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr "Fecha de recepción"
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr "La fecha en la que se recibió este artículo de devolución"
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Resultado"
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr "Salida para esta partida"
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr "Costo asociado con la devolución o reparación para esta partida"
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr "El pedido no puede ser cancelado"
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr "Permitir cerrar el pedido con partidas incompletas"
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr "El pedido tiene partidas incompletas"
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr "El pedido no está abierto"
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr "Moneda del precio de compra"
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr "Debe especificar la parte del proveedor"
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr "La orden de compra debe especificarse"
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr "El proveedor debe coincidir con la orden de compra"
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr "La orden de compra debe coincidir con el proveedor"
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr "Partida"
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr "La partida no coincide con la orden de compra"
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr "Seleccione la ubicación de destino para los artículos recibidos"
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr "Introduzca el código de lote para los artículos de almacén entrantes"
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr "Introduzca números de serie para artículos de almacén entrantes"
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "Código de barras"
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr "Código de barras escaneado"
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr "Código de barras en uso"
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr "Debe proporcionarse una cantidad entera para las partes rastreables"
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr "Se deben proporcionar las partidas"
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr "Se requiere ubicación de destino"
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr "Los valores del código de barras deben ser únicos"
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr "Moneda del precio de venta"
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr "No se proporcionaron detalles de envío"
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr "La partida no está asociada con este pedido"
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr "La cantidad debe ser positiva"
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr "Introduzca números de serie para asignar"
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr "El envío ya ha sido enviado"
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr "El envío no está asociado con este pedido"
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr "No se han encontrado coincidencias para los siguientes números de serie"
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr "Los siguientes números de serie ya están asignados"
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr "Partida de orden de devolución"
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr "La partida no coincide con la orden de devolución"
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr "La partida ya ha sido recibida"
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr "Los artículos sólo pueden ser recibidos contra pedidos en curso"
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr "Moneda de precio de línea"
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr "Orden de compra atrasada"
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "La orden de compra {po} está atrasada"
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr "Orden de venta atrasada"
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "La orden de venta {so} está atrasada"
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr "Envíos pendientes"
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Acciones"
@@ -5434,47 +5431,47 @@ msgstr "Actualizado el precio unitario de {part} a {price}"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "Actualizado el precio unitario de {part} a {price} y la cantidad a {qty}"
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr "ID de Parte"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr "Nombre de parte"
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr "Descripción de parte"
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr "IPN"
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr "Revisión"
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Palabras claves"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr "ID de Categoría"
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr "Nombre de categoría"
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr "ID de ubicación predeterminada"
@@ -5482,11 +5479,11 @@ msgstr "ID de ubicación predeterminada"
msgid "Default Supplier ID"
msgstr "ID de proveedor predeterminado"
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr "Variante de"
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "Stock mínimo"
@@ -5496,8 +5493,8 @@ msgstr "Stock mínimo"
msgid "In Stock"
msgstr "En Stock"
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr "Usado en"
msgid "Building"
msgstr "En construcción"
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr "Costo mínimo"
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr "Costo máximo"
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr "Identificador de la clase o especie padre"
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr "Nombre del padre"
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr "Ruta de Categoría"
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr "Ruta de Categoría"
msgid "Parts"
msgstr "Partes"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr "Nivel de BOM"
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr "ID de artículo de BOM"
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr "IPN del padre"
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr "IPN de la parte"
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Precio mínimo"
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr "Precio máximo"
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr "Orden de compra entrante"
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr "Orden de venta saliente"
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr "Válido"
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr "Validación de Lista de Materiales"
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr "Esta opción debe ser seleccionada"
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Ubicación Predeterminada"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Inventario Total"
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "Stock Disponible"
@@ -5616,7 +5613,7 @@ msgstr "Stock Disponible"
msgid "Input quantity for price calculation"
msgstr "Cantidad de entrada para el cálculo del precio"
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoría de parte"
@@ -5662,62 +5659,62 @@ msgstr "Icono (opcional)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr "¡No puedes hacer que esta categoría de partes sea estructural porque algunas partes ya están asignadas!"
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr "Opción no válida para la parte principal"
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "La parte '{p1}' se utiliza en BOM para '{p2}' (recursivo)"
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "El IPN debe coincidir con la expresión regular {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr "Ya existe un artículo de almacén con este número de serie"
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN duplicado no permitido en la configuración de partes"
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr "Parte con este nombre, IPN y revisión ya existe."
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr "¡No se pueden asignar partes a las categorías de partes estructurales!"
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Nombre de la parte"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr "Es plantilla"
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr "¿Es esta parte una parte de la plantilla?"
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr "¿Es esta parte una variante de otra parte?"
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr "Descripción de parte (opcional)"
-#: part/models.py:872
+#: part/models.py:880
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:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqued
msgid "Category"
msgstr "Categoría"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "Categoría de parte"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr "Número de parte interna"
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr "Revisión de parte o número de versión"
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr "¿Dónde se almacena este artículo normalmente?"
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr "Proveedor por defecto"
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr "Parte de proveedor predeterminada"
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr "Expiración por defecto"
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte"
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr "Nivel mínimo de stock permitido"
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr "Unidades de medida para esta parte"
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr "¿Se puede construir esta parte a partir de otras partes?"
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr "¿Se puede utilizar esta parte para construir otras partes?"
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr "¿Esta parte tiene seguimiento de objetos únicos?"
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr "¿Se puede comprar esta parte a proveedores externos?"
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr "¿Se puede vender esta parte a los clientes?"
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr "¿Está activa esta parte?"
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr "¿Es ésta una parte virtual, como un producto de software o una licencia?"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr "Suma de verificación de BOM"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr "Suma de verificación de BOM almacenada"
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr "BOM comprobado por"
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr "Fecha BOM comprobada"
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr "Creación de Usuario"
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr "Usuario responsable de esta parte"
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr "Último inventario"
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr "Vender múltiples"
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr "Moneda utilizada para almacenar en caché los cálculos de precios"
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr "Costo mínimo de BOM"
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr "Costo mínimo de partes de componentes"
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr "Costo máximo de BOM"
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr "Costo máximo de partes de componentes"
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr "Costo mínimo de compra"
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr "Costo histórico mínimo de compra"
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr "Costo máximo de compra"
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr "Costo histórico máximo de compra"
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr "Precio interno mínimo"
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr "Precio interno máximo"
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr "Costo máximo basado en precios reducidos internos"
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr "Precio mínimo de proveedor"
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr "Precio mínimo de la parte de proveedores externos"
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr "Precio máximo de proveedor"
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr "Precio máximo de la parte de proveedores externos"
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr "Costo mínimo de variante"
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr "Costo mínimo calculado de las partes variantes"
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr "Costo máximo de variante"
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr "Costo máximo calculado de las partes variantes"
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr "Precio de venta mínimo"
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr "Precio de venta mínimo basado en precios reducidos"
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr "Precio de venta máximo"
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr "Precio de venta máximo basado en precios reducidos"
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr "Costo de venta mínimo"
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr "Precio de venta mínimo histórico"
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr "Número de artículos"
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr "Fecha"
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr "Notas adicionales"
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr "Informe"
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr "Número de partes"
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
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:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr "Ya existe una prueba con este nombre para esta parte"
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr "Nombre de prueba"
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr "Introduzca un nombre para la prueba"
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr "Descripción de prueba"
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr "Introduce la descripción para esta prueba"
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Requerido"
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr "¿Es necesario pasar esta prueba?"
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr "Requiere valor"
-#: part/models.py:3318
+#: part/models.py:3355
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:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr "Adjunto obligatorio"
-#: part/models.py:3324
+#: part/models.py:3361
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:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr "El nombre de parámetro en la plantilla tiene que ser único"
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr "Nombre de Parámetro"
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr "Casilla de verificación"
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr "¿Es este parámetro una casilla de verificación?"
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr "Opciones"
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Opciones válidas para este parámetro (separados por comas)"
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr "Opción inválida para el valor del parámetro"
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr "Parte principal"
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr "Plantilla de parámetro"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr "Datos"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr "Valor del parámetro"
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr "Valor predeterminado"
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr "Valor de parámetro por defecto"
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr "ID de parte o nombre de parte"
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr "Valor de ID de parte única"
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr "Valor IPN de parte"
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr "Nivel"
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr "Nivel de BOM"
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "Item de Lista de Materiales"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr "Seleccionar parte principal"
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr "Sub parte"
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr "Seleccionar parte a utilizar en BOM"
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr "Cantidad del artículo en BOM"
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr "Este artículo BOM es opcional"
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Este artículo de BOM es consumible (no está rastreado en órdenes de construcción)"
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Exceso"
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)"
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr "Referencia de artículo de BOM"
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr "Notas del artículo de BOM"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr "Suma de verificación"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr "Suma de verificación de línea de BOM"
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Validado"
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr "Este artículo de BOM ha sido validado"
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
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:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Permitir variantes"
-#: part/models.py:3861
+#: part/models.py:3906
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:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr "La cantidad debe ser un valor entero para las partes rastreables"
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr "Debe especificar la subparte"
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr "Ítem de BOM sustituto"
-#: part/models.py:4104
+#: part/models.py:4152
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:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr "Artículo BOM superior"
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr "Sustituir parte"
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr "Seleccionar parte relacionada"
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr "Moneda de compra de ítem de stock"
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr "Parte original"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr "Seleccione la parte original a duplicar"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr "Copiar Imagen"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr "Copiar imagen desde la parte original"
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr "Copiar BOM"
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr "Copiar la factura de materiales de la parte original"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr "Copiar Parámetros"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr "Copiar datos del parámetro de la parte original"
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr "Cantidad Inicial de Stock"
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr "Seleccione proveedor (o déjelo en blanco para saltar)"
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Seleccionar fabricante (o dejar en blanco para saltar)"
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr "Número de parte del fabricante"
@@ -6378,190 +6375,190 @@ msgstr "Número de parte del fabricante"
msgid "Selected company is not a valid supplier"
msgstr "La empresa seleccionada no es un proveedor válido"
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr "La empresa seleccionada no es un fabricante válido"
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr "Duplicar Parte"
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr "Información del proveedor"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr "Añadir información inicial del proveedor para esta parte"
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr "Copiar Parámetros de Categoría"
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada"
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr "Generar informe"
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr "Actualizar partes"
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr "Actualizar"
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr "Seleccionar parte de la que copiar BOM"
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr "Eliminar Datos Existentes"
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr "Eliminar artículos BOM existentes antes de copiar"
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr "Incluye Heredado"
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr "Incluye artículos BOM que son heredados de partes con plantillas"
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr "Omitir filas no válidas"
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr "Activar esta opción para omitir filas inválidas"
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr "Copiar partes sustitutas"
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr "Limpiar BOM Existente"
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr "Varios resultados encontrados"
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr "No se encontraron partes coincidentes"
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr "La parte no está designada como componente"
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr "Cantidad no proporcionada"
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr "Cantidad no válida"
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr "Se requiere al menos un artículo BOM"
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr "Cantidad Total"
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr "Costo total mínimo"
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr "Costo total máximo"
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr "Validar BOM"
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr "Añadir artículo al BOM"
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr "Puede construir"
@@ -7219,11 +7216,11 @@ msgstr "Crear nueva variante de parte"
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr "Base de datos desconocida"
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr "No se especificó ninguna acción"
msgid "No matching action found"
msgstr "No se encontró ninguna acción coincidente"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr "Faltan datos de código de barras"
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "No se encontró ninguna coincidencia para los datos del código de barras"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Coincidencia encontrada para datos de códigos de barras"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr "El código de barras coincide con artículo existente"
@@ -7283,52 +7279,6 @@ msgstr "El código de barras coincide con artículo existente"
msgid "No match found for provided value"
msgstr "No hay coincidencias para el valor proporcionado"
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Impresión de etiquetas fallida"
@@ -7345,8 +7295,6 @@ msgstr "Proporciona soporte nativo para códigos de barras"
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr "Contribuidores de InvenTree"
@@ -7384,7 +7332,7 @@ msgstr "URL de webhook entrante de Slack"
msgid "URL that is used to send messages to a slack channel"
msgstr "URL que se utiliza para enviar mensajes a un canal de slack"
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr "Abrir enlace"
@@ -7412,68 +7360,20 @@ msgstr "Modo de depuración"
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr "Activar modo de depuración - devuelve código HTML en lugar de PDF"
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr "Nombre del complemento"
msgid "Is the plugin active"
msgstr "Está activo el complemento"
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr "Instalado"
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr "Complemento de ejemplo"
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr "Complemento integrado"
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr "Complemento"
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr "Método"
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr "No se encontró autor"
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "El complemento '{p}' no es compatible con la versión actual de InvenTree {v}"
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "El complemento requiere al menos la versión {v}"
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "El complemento requiere como máximo la versión {v}"
@@ -7614,33 +7514,29 @@ msgstr "Instalación no confirmada"
msgid "Either packagename of URL must be provided"
msgstr "Debe proporcionar cualquier nombre de paquete de la URL"
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr "Activar complemento"
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr "Activar este complemento"
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr "No se han proporcionado objetos válidos a la plantilla"
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr "Informe de la prueba"
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr "Nombre de la plantilla"
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr "Plantilla de informe"
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr "Descripción de la plantilla de informe"
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr "Número de revisión del informe (autoincremental)"
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr "Patrón para generar nombres de archivo"
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr "Plantilla de informe está habilitada"
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr "Filtros de consulta de Stock (lista separada por comas de pares clave=valor)"
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr "Incluye Pruebas Instaladas"
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr "Incluye resultados de prueba para artículos de stock instalados dentro del artículo ensamblado"
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr "Crear filtros"
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr "Crear filtros de consulta (lista separada por comas de pares clave=valor"
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr "Filtros de partes"
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr "Filtros de búsqueda de partes (lista separada por comas de pares clave=valor"
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr "Filtros de búsqueda de orden de compra"
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr "Filtros de búsqueda de pedidos de ventas"
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr "Filtros de búsqueda de orden de devolución"
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr "Fragmento"
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr "Archivo fragmento de informe"
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr "Descripción de archivo de fragmento"
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr "Activo"
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr "Reportar archivo de activos"
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr "Descripción del archivo de activos"
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr "Total"
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr "Resultados de la Prueba"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Prueba"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr "Resultado"
@@ -7891,7 +7787,7 @@ msgstr "Nombre del proveedor"
msgid "Customer ID"
msgstr "ID de cliente"
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr "Instalado en"
@@ -7916,33 +7812,33 @@ msgstr "Revisión necesaria"
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr "Fecha de Expiración"
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr "Ubicación externa"
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr "Cantidad requerida"
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr "Debe suministrarse una parte válida"
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr "Ubicación de Stock"
msgid "Stock Locations"
msgstr "Ubicaciones de Stock"
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr "Propietario"
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr "Seleccionar Propietario"
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Tipo de parte ('{pf}') debe ser {pe}"
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
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:676
+#: stock/models.py:706
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:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr "El objeto no puede pertenecer a sí mismo"
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr "El artículo debe tener una referencia de construcción si is_building=True"
-#: stock/models.py:718
+#: stock/models.py:748
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:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr "Artículo de stock padre"
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr "Parte base"
-#: stock/models.py:750
+#: stock/models.py:780
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:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr "¿Dónde se encuentra este artículo de stock?"
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr "Empaquetar este artículo de stock se almacena en"
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr "¿Está este artículo instalado en otro artículo?"
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr "Número de serie para este artículo"
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr "Código de lote para este artículo de stock"
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr "Cantidad de Stock"
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr "Build de origen"
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr "Build para este item de stock"
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr "Consumido por"
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr "Orden de compra de origen"
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr "Orden de compra para este artículo de stock"
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr "Orden de venta de destino"
-#: stock/models.py:855
+#: stock/models.py:885
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:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr "Eliminar al agotar"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr "Eliminar este artículo de stock cuando se agoten las existencias"
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr "Precio de compra único en el momento de la compra"
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr "Convertido a parte"
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr "La parte no está establecida como rastreable"
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr "Cantidad debe ser un entero"
-#: stock/models.py:1454
+#: stock/models.py:1485
#, 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:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr "Los números de serie deben ser una lista de enteros"
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr "La cantidad no coincide con los números de serie"
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "Números de serie ya existen"
-#: stock/models.py:1538
+#: stock/models.py:1569
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:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr "Artículo de stock está instalado en otro artículo"
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr "Artículo de stock contiene otros artículos"
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr "Artículo de stock ha sido asignado a un cliente"
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr "El artículo de stock está en producción"
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr "Stock serializado no puede ser combinado"
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr "Artículos de Stock Duplicados"
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr "Los artículos de stock deben referirse a la misma parte"
-#: stock/models.py:1568
+#: stock/models.py:1599
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:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr "Los códigos de estado del stock deben coincidir"
-#: stock/models.py:1766
+#: stock/models.py:1797
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:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr "Notas de entrada"
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr "Debe proporcionarse un valor para esta prueba"
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr "El archivo adjunto debe ser subido para esta prueba"
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr "Nombre del test"
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr "Resultado de la prueba"
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr "Valor de salida de prueba"
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr "Adjunto de resultados de prueba"
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr "Notas de prueba"
@@ -8231,141 +8127,141 @@ msgstr "El número de serie es demasiado grande"
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr "Introduzca el número de artículos de stock para serializar"
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "La cantidad no debe exceder la cantidad disponible de stock ({q})"
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr "Introduzca números de serie para nuevos artículos"
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr "Ubicación de stock de destino"
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr "Campo de nota opcional"
-#: stock/serializers.py:428
+#: stock/serializers.py:430
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:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr "Añadir nota de transacción (opcional)"
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr "La parte debe ser vendible"
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr "El artículo está asignado a una orden de venta"
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr "El artículo está asignado a una orden de creación"
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr "Cliente para asignar artículos de stock"
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr "La empresa seleccionada no es un cliente"
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr "Notas de asignación de stock"
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr "Debe proporcionarse una lista de artículos de stock"
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr "Notas de fusión de stock"
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr "Permitir proveedores no coincidentes"
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Permitir fusionar artículos de stock con diferentes partes de proveedor"
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr "Permitir estado no coincidente"
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr "Permitir fusionar artículos de stock con diferentes códigos de estado"
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr "Debe proporcionar al menos dos artículos de stock"
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr "Valor de clave primaria de Stock"
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr "Notas de transacción de stock"
@@ -9905,7 +9801,7 @@ 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:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr "Cantidad requerida"
@@ -10282,74 +10178,74 @@ msgstr "Stock de variante permitido"
msgid "Substitutes"
msgstr "Sustitutos"
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr "Validar Artículo para el BOM"
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr "Esta línea ha sido validada"
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr "Editar partes sustitutas"
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr "Editar Artículo de BOM"
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr "Eliminar Artículo de BOM"
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr "Ver BOM"
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr "No se encontraron artículos BOM"
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr "Parte requerida"
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr "Heredado de BOM superior"
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index 38670114f9..ac60f48dce 100644
--- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-18 03:46+0000\n"
+"POT-Creation-Date: 2023-09-29 21:02+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,69 +18,71 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:93
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
-#, python-brace-format
-msgid "Could not convert {original} to {unit}"
+#: InvenTree/conversion.py:115
+msgid "Provided value is not a valid number"
+msgstr ""
+
+#: InvenTree/conversion.py:117
+msgid "Provided value has an invalid unit"
+msgstr ""
+
+#: InvenTree/conversion.py:122
+msgid "Provided value could not be converted to the specified unit"
msgstr ""
#: InvenTree/conversion.py:127
-msgid "Invalid quantity supplied"
+msgid "Error"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:121 stock/models.py:2191 stock/models.py:2299
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:999 stock/serializers.py:1098
+#: stock/serializers.py:1259 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
-#: templates/js/translated/part.js:1077
-#: templates/js/translated/purchase_order.js:2179
-#: templates/js/translated/return_order.js:773
+#: templates/js/translated/part.js:1061
+#: templates/js/translated/purchase_order.js:2175
+#: templates/js/translated/return_order.js:769
#: templates/js/translated/sales_order.js:1064
#: templates/js/translated/sales_order.js:1979
-#: templates/js/translated/stock.js:1516 templates/js/translated/stock.js:2398
+#: templates/js/translated/stock.js:1478 templates/js/translated/stock.js:2360
msgid "Notes"
msgstr ""
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -104,99 +106,99 @@ msgstr ""
msgid "Old password"
msgstr ""
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr ""
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -212,252 +214,248 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2293
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2770 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: stock/admin.py:138 templates/js/translated/company.js:1309
+#: stock/admin.py:120 templates/js/translated/company.js:1309
#: templates/js/translated/company.js:1663 templates/js/translated/order.js:351
-#: templates/js/translated/part.js:2451
-#: templates/js/translated/purchase_order.js:2019
-#: templates/js/translated/purchase_order.js:2183
-#: templates/js/translated/return_order.js:777
+#: templates/js/translated/part.js:2430
+#: templates/js/translated/purchase_order.js:2015
+#: templates/js/translated/purchase_order.js:2179
+#: templates/js/translated/return_order.js:773
#: templates/js/translated/sales_order.js:1053
#: templates/js/translated/sales_order.js:1984
msgid "Link"
msgstr ""
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:735
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2229
+#: common/models.py:2230 common/models.py:2443 common/models.py:2444
+#: common/models.py:2700 common/models.py:2701 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:224 plugin/models.py:225
#: report/templates/report/inventree_test_report_base.html:105
-#: templates/js/translated/stock.js:3007
+#: templates/js/translated/stock.js:2958
msgid "User"
msgstr ""
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
-#: templates/InvenTree/settings/mixins/urls.html:13
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2429
+#: common/models.py:2877 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:164 templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
#: templates/InvenTree/settings/plugin_settings.html:22
#: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
#: templates/js/translated/company.js:666
#: templates/js/translated/company.js:714
#: templates/js/translated/company.js:903
#: templates/js/translated/company.js:1155
-#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1183
-#: templates/js/translated/part.js:1471 templates/js/translated/part.js:1607
-#: templates/js/translated/part.js:2744 templates/js/translated/stock.js:2687
+#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1167
+#: templates/js/translated/part.js:1455 templates/js/translated/part.js:1591
+#: templates/js/translated/part.js:2723 templates/js/translated/stock.js:2649
msgid "Name"
msgstr ""
-#: InvenTree/models.py:656 build/models.py:168
+#: InvenTree/models.py:672 build/models.py:168
#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:177
+#: report/models.py:580 report/models.py:624
#: report/templates/report/inventree_build_order_base.html:117
-#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
+#: stock/admin.py:41 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:27
#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
#: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
-#: templates/js/translated/build.js:2121 templates/js/translated/company.js:518
+#: templates/js/translated/build.js:2109 templates/js/translated/company.js:518
#: templates/js/translated/company.js:1320
#: templates/js/translated/company.js:1631 templates/js/translated/index.js:119
-#: templates/js/translated/order.js:298 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1618
-#: templates/js/translated/part.js:1953 templates/js/translated/part.js:2350
-#: templates/js/translated/part.js:2780 templates/js/translated/part.js:2868
-#: templates/js/translated/plugin.js:79
-#: templates/js/translated/purchase_order.js:1685
-#: templates/js/translated/purchase_order.js:1828
-#: templates/js/translated/purchase_order.js:2001
+#: templates/js/translated/order.js:298 templates/js/translated/part.js:1219
+#: templates/js/translated/part.js:1464 templates/js/translated/part.js:1602
+#: templates/js/translated/part.js:1937 templates/js/translated/part.js:2329
+#: templates/js/translated/part.js:2759 templates/js/translated/part.js:2847
+#: templates/js/translated/purchase_order.js:1681
+#: templates/js/translated/purchase_order.js:1824
+#: templates/js/translated/purchase_order.js:1997
#: templates/js/translated/return_order.js:311
#: templates/js/translated/sales_order.js:799
#: templates/js/translated/sales_order.js:1809
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:2028
-#: templates/js/translated/stock.js:2719 templates/js/translated/stock.js:2802
+#: templates/js/translated/stock.js:1457 templates/js/translated/stock.js:1990
+#: templates/js/translated/stock.js:2681 templates/js/translated/stock.js:2753
msgid "Description"
msgstr ""
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr ""
-#: InvenTree/models.py:672 InvenTree/models.py:673
-#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
+#: InvenTree/models.py:688 InvenTree/models.py:689
+#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2690
msgid "Path"
msgstr ""
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
@@ -511,136 +509,136 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:713
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:714
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:728
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:814
+#: InvenTree/settings.py:756
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:815
+#: InvenTree/settings.py:757
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:816
+#: InvenTree/settings.py:758
msgid "German"
msgstr ""
-#: InvenTree/settings.py:817
+#: InvenTree/settings.py:759
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:818
+#: InvenTree/settings.py:760
msgid "English"
msgstr ""
-#: InvenTree/settings.py:819
+#: InvenTree/settings.py:761
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:820
+#: InvenTree/settings.py:762
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:821
+#: InvenTree/settings.py:763
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:822
+#: InvenTree/settings.py:764
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:823
+#: InvenTree/settings.py:765
msgid "French"
msgstr ""
-#: InvenTree/settings.py:824
+#: InvenTree/settings.py:766
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:825
+#: InvenTree/settings.py:767
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:826
+#: InvenTree/settings.py:768
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:827
+#: InvenTree/settings.py:769
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:828
+#: InvenTree/settings.py:770
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:829
+#: InvenTree/settings.py:771
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:772
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:773
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:774
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:775
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:776
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:777
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:778
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:779
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:780
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:781
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:782
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:783
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:784
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1000
msgid "Background worker check failed"
msgstr ""
@@ -655,7 +653,7 @@ msgstr ""
#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40
#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167
#: InvenTree/status_codes.py:188 generic/states/tests.py:16
-#: templates/js/translated/table_filters.js:594
+#: templates/js/translated/table_filters.js:558
msgid "Pending"
msgstr ""
@@ -689,7 +687,7 @@ msgstr ""
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -724,7 +722,7 @@ msgstr ""
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544
+#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:510
msgid "Stock item created"
msgstr ""
@@ -780,7 +778,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1826
+#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1788
msgid "Merged stock items"
msgstr ""
@@ -800,7 +798,7 @@ msgstr ""
msgid "Build order output rejected"
msgstr ""
-#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1732
+#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1694
msgid "Consumed by build order"
msgstr ""
@@ -816,7 +814,7 @@ msgstr ""
msgid "Returned against Return Order"
msgstr ""
-#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375
+#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:351
msgid "Sent to customer"
msgstr ""
@@ -848,93 +846,93 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr ""
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr ""
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
-#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
+#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2493
#: templates/js/translated/table_filters.js:190
-#: templates/js/translated/table_filters.js:579
+#: templates/js/translated/table_filters.js:543
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
-#: templates/js/translated/build.js:2514
+#: templates/js/translated/build.js:2502
#: templates/js/translated/table_filters.js:186
#: templates/js/translated/table_filters.js:215
-#: templates/js/translated/table_filters.js:583
+#: templates/js/translated/table_filters.js:547
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
-#: templates/js/translated/table_filters.js:575
+#: build/api.py:289 templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:539
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
-#: templates/js/translated/build.js:2605
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1717
+#: templates/js/translated/build.js:2593
#: templates/js/translated/sales_order.js:1926
-#: templates/js/translated/table_filters.js:567
+#: templates/js/translated/table_filters.js:531
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2534
#: templates/js/translated/index.js:123
-#: templates/js/translated/model_renderers.js:226
-#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
-#: templates/js/translated/part.js:696
-#: templates/js/translated/table_filters.js:340
-#: templates/js/translated/table_filters.js:571
+#: templates/js/translated/model_renderers.js:223
+#: templates/js/translated/part.js:673 templates/js/translated/part.js:675
+#: templates/js/translated/part.js:680
+#: templates/js/translated/table_filters.js:316
+#: templates/js/translated/table_filters.js:535
msgid "Available"
msgstr ""
@@ -943,7 +941,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:105
#: templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
-#: templates/js/translated/build.js:961 templates/js/translated/stock.js:2863
+#: templates/js/translated/build.js:953 templates/js/translated/stock.js:2814
msgid "Build Order"
msgstr ""
@@ -966,18 +964,18 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1737 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
#: report/templates/report/inventree_so_report_base.html:28
#: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973
-#: templates/js/translated/build.js:2497 templates/js/translated/order.js:291
+#: templates/js/translated/build.js:2485 templates/js/translated/order.js:291
#: templates/js/translated/pricing.js:386
-#: templates/js/translated/purchase_order.js:2044
-#: templates/js/translated/return_order.js:726
+#: templates/js/translated/purchase_order.js:2040
+#: templates/js/translated/return_order.js:722
#: templates/js/translated/sales_order.js:1815
msgid "Reference"
msgstr ""
@@ -996,13 +994,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:958 part/serializers.py:1373
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1013,7 +1011,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1021,28 +1019,28 @@ msgstr ""
#: templates/email/overdue_build_order.html:16
#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
-#: templates/js/translated/build.js:1293 templates/js/translated/build.js:1724
-#: templates/js/translated/build.js:2144 templates/js/translated/build.js:2317
+#: templates/js/translated/build.js:1285 templates/js/translated/build.js:1716
+#: templates/js/translated/build.js:2132 templates/js/translated/build.js:2305
#: templates/js/translated/company.js:348
#: templates/js/translated/company.js:1106
#: templates/js/translated/company.js:1261
#: templates/js/translated/company.js:1549 templates/js/translated/index.js:109
-#: templates/js/translated/part.js:1938 templates/js/translated/part.js:2010
-#: templates/js/translated/part.js:2319 templates/js/translated/pricing.js:369
+#: templates/js/translated/part.js:1922 templates/js/translated/part.js:1994
+#: templates/js/translated/part.js:2298 templates/js/translated/pricing.js:369
#: templates/js/translated/purchase_order.js:757
#: templates/js/translated/purchase_order.js:1289
-#: templates/js/translated/purchase_order.js:1827
-#: templates/js/translated/purchase_order.js:1986
+#: templates/js/translated/purchase_order.js:1823
+#: templates/js/translated/purchase_order.js:1982
#: templates/js/translated/return_order.js:536
-#: templates/js/translated/return_order.js:707
+#: templates/js/translated/return_order.js:703
#: templates/js/translated/sales_order.js:297
#: templates/js/translated/sales_order.js:1194
#: templates/js/translated/sales_order.js:1595
#: templates/js/translated/sales_order.js:1793
-#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842
-#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1967
-#: templates/js/translated/stock.js:2828 templates/js/translated/stock.js:3061
-#: templates/js/translated/stock.js:3202
+#: templates/js/translated/stock.js:642 templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:1020 templates/js/translated/stock.js:1929
+#: templates/js/translated/stock.js:2779 templates/js/translated/stock.js:3012
+#: templates/js/translated/stock.js:3149
msgid "Part"
msgstr ""
@@ -1058,8 +1056,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
-#: templates/js/translated/build.js:1712
+#: build/models.py:207 build/serializers.py:946
+#: templates/js/translated/build.js:1704
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
msgstr ""
@@ -1100,17 +1098,17 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:739 stock/serializers.py:1223
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1125,8 +1123,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
-#: templates/js/translated/build.js:2229
+#: build/models.py:265 order/models.py:422 order/models.py:1780
+#: templates/js/translated/build.js:2217
msgid "Completion Date"
msgstr ""
@@ -1134,7 +1132,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:279 templates/js/translated/build.js:2189
+#: build/models.py:279 templates/js/translated/build.js:2177
msgid "Issued by"
msgstr ""
@@ -1143,16 +1141,16 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2201
-#: templates/js/translated/purchase_order.js:1742
+#: templates/js/translated/build.js:2189
+#: templates/js/translated/purchase_order.js:1738
#: templates/js/translated/return_order.js:356
-#: templates/js/translated/table_filters.js:527
+#: templates/js/translated/table_filters.js:491
msgid "Responsible"
msgstr ""
@@ -1166,7 +1164,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:733
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1181,9 +1179,9 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
-#: templates/js/translated/build.js:2126
-#: templates/js/translated/purchase_order.js:1689
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
+#: templates/js/translated/build.js:2114
+#: templates/js/translated/purchase_order.js:1685
#: templates/js/translated/return_order.js:315
#: templates/js/translated/sales_order.js:803
#: templates/js/translated/table_filters.js:48
@@ -1195,48 +1193,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1215 part/serializers.py:1536
+#: stock/models.py:593 stock/models.py:1387 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2251
+#: order/models.py:1086 order/models.py:1658 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1246,376 +1244,380 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:103 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:510
-#: templates/js/translated/build.js:726 templates/js/translated/build.js:1350
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2339
+#: templates/js/translated/build.js:722 templates/js/translated/build.js:1342
+#: templates/js/translated/build.js:1719 templates/js/translated/build.js:2327
#: templates/js/translated/company.js:1808
-#: templates/js/translated/model_renderers.js:228
-#: templates/js/translated/order.js:304 templates/js/translated/part.js:958
-#: templates/js/translated/part.js:1808 templates/js/translated/part.js:3305
+#: templates/js/translated/model_renderers.js:225
+#: templates/js/translated/order.js:304 templates/js/translated/part.js:942
+#: templates/js/translated/part.js:1792 templates/js/translated/part.js:3284
#: templates/js/translated/pricing.js:381
#: templates/js/translated/pricing.js:474
#: templates/js/translated/pricing.js:522
#: templates/js/translated/pricing.js:616
#: templates/js/translated/purchase_order.js:760
-#: templates/js/translated/purchase_order.js:1831
-#: templates/js/translated/purchase_order.js:2050
+#: templates/js/translated/purchase_order.js:1827
+#: templates/js/translated/purchase_order.js:2046
#: templates/js/translated/sales_order.js:314
#: templates/js/translated/sales_order.js:1196
#: templates/js/translated/sales_order.js:1515
#: templates/js/translated/sales_order.js:1605
#: templates/js/translated/sales_order.js:1695
#: templates/js/translated/sales_order.js:1821
-#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702
-#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:2992
-#: templates/js/translated/stock.js:3073
+#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:668
+#: templates/js/translated/stock.js:839 templates/js/translated/stock.js:2943
+#: templates/js/translated/stock.js:3024
msgid "Quantity"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1614
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1617
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:930
+#: stock/serializers.py:1056 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
-#: templates/js/translated/build.js:1726
+#: templates/js/translated/build.js:1718
#: templates/js/translated/sales_order.js:298
#: templates/js/translated/sales_order.js:1195
#: templates/js/translated/sales_order.js:1496
#: templates/js/translated/sales_order.js:1501
#: templates/js/translated/sales_order.js:1602
#: templates/js/translated/sales_order.js:1689
-#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843
-#: templates/js/translated/stock.js:2948
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:809
+#: templates/js/translated/stock.js:2899
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
-#: templates/js/translated/build.js:1303
+#: build/serializers.py:156 build/serializers.py:828
+#: templates/js/translated/build.js:1295
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
-#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
+#: templates/js/translated/stock.js:333 templates/js/translated/stock.js:531
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:736
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:970
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1091 stock/serializers.py:1362
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
-#: templates/js/translated/build.js:2354
+#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:980
+#: templates/js/translated/build.js:2342
#: templates/js/translated/purchase_order.js:1163
#: templates/js/translated/purchase_order.js:1253
#: templates/js/translated/sales_order.js:1508
#: templates/js/translated/sales_order.js:1616
#: templates/js/translated/sales_order.js:1624
#: templates/js/translated/sales_order.js:1703
-#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844
-#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2171
-#: templates/js/translated/stock.js:2842
+#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:810
+#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:2133
+#: templates/js/translated/stock.js:2793
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1763 order/serializers.py:530 stock/admin.py:106
+#: stock/serializers.py:703 stock/serializers.py:1230
#: stock/templates/stock/item_base.html:428
-#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
+#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2161
#: templates/js/translated/purchase_order.js:1293
-#: templates/js/translated/purchase_order.js:1701
+#: templates/js/translated/purchase_order.js:1697
#: templates/js/translated/return_order.js:328
#: templates/js/translated/sales_order.js:816
-#: templates/js/translated/stock.js:2146 templates/js/translated/stock.js:2966
-#: templates/js/translated/stock.js:3089
+#: templates/js/translated/stock.js:2108 templates/js/translated/stock.js:2917
+#: templates/js/translated/stock.js:3040
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:943
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1732,16 +1734,16 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2221 templates/js/translated/part.js:1826
-#: templates/js/translated/purchase_order.js:1718
-#: templates/js/translated/purchase_order.js:2126
+#: templates/js/translated/build.js:2209 templates/js/translated/part.js:1810
+#: templates/js/translated/purchase_order.js:1714
+#: templates/js/translated/purchase_order.js:2122
#: templates/js/translated/return_order.js:344
-#: templates/js/translated/return_order.js:748
+#: templates/js/translated/return_order.js:744
#: templates/js/translated/sales_order.js:832
#: templates/js/translated/sales_order.js:1864
msgid "Target Date"
@@ -1758,9 +1760,9 @@ msgstr ""
#: order/templates/order/return_order_base.html:118
#: order/templates/order/sales_order_base.html:123
#: templates/js/translated/table_filters.js:98
-#: templates/js/translated/table_filters.js:520
-#: templates/js/translated/table_filters.js:622
-#: templates/js/translated/table_filters.js:663
+#: templates/js/translated/table_filters.js:484
+#: templates/js/translated/table_filters.js:586
+#: templates/js/translated/table_filters.js:627
msgid "Overdue"
msgstr ""
@@ -1770,8 +1772,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1781,7 +1783,7 @@ msgstr ""
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:766
#: templates/js/translated/sales_order.js:989
-#: templates/js/translated/stock.js:2895
+#: templates/js/translated/stock.js:2846
msgid "Sales Order"
msgstr ""
@@ -1793,7 +1795,7 @@ msgid "Issued By"
msgstr ""
#: build/templates/build/build_base.html:212
-#: build/templates/build/detail.html:94 templates/js/translated/build.js:2138
+#: build/templates/build/detail.html:94 templates/js/translated/build.js:2126
msgid "Priority"
msgstr ""
@@ -1821,8 +1823,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
-#: templates/js/translated/purchase_order.js:2168
+#: build/templates/build/detail.html:49 order/models.py:1235
+#: templates/js/translated/purchase_order.js:2164
msgid "Destination"
msgstr ""
@@ -1834,15 +1836,15 @@ msgstr ""
msgid "Allocated Parts"
msgstr ""
-#: build/templates/build/detail.html:80 stock/admin.py:123
+#: build/templates/build/detail.html:80 stock/admin.py:105
#: stock/templates/stock/item_base.html:163
-#: templates/js/translated/build.js:1361
-#: templates/js/translated/model_renderers.js:233
+#: templates/js/translated/build.js:1353
+#: templates/js/translated/model_renderers.js:230
#: templates/js/translated/purchase_order.js:1259
-#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2160
-#: templates/js/translated/stock.js:3096
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:404
+#: templates/js/translated/stock.js:1092 templates/js/translated/stock.js:2122
+#: templates/js/translated/stock.js:3047
+#: templates/js/translated/table_filters.js:289
+#: templates/js/translated/table_filters.js:380
msgid "Batch"
msgstr ""
@@ -1850,7 +1852,7 @@ msgstr ""
#: order/templates/order/order_base.html:173
#: order/templates/order/return_order_base.html:152
#: order/templates/order/sales_order_base.html:187
-#: templates/js/translated/build.js:2181
+#: templates/js/translated/build.js:2169
msgid "Created"
msgstr ""
@@ -1860,7 +1862,7 @@ msgstr ""
#: build/templates/build/detail.html:149
#: order/templates/order/sales_order_base.html:203
-#: templates/js/translated/table_filters.js:685
+#: templates/js/translated/table_filters.js:649
msgid "Completed"
msgstr ""
@@ -2007,11 +2009,11 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:71
+#: common/models.py:70
msgid "Updated"
msgstr ""
-#: common/models.py:72
+#: common/models.py:71
msgid "Timestamp of last update"
msgstr ""
@@ -2023,1467 +2025,1438 @@ msgstr ""
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:595
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:597
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:638
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:655
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:666
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:705
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:912
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:937
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:939
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
-msgid "No plugin"
-msgstr ""
-
-#: common/models.py:1060
+#: common/models.py:996
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:997
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
-msgid "Pending migrations"
-msgstr ""
-
-#: common/models.py:1069
-msgid "Number of pending database migrations"
-msgstr ""
-
-#: common/models.py:1075
+#: common/models.py:1004
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1006
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1011
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1012
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1018
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1019
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1025 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1026
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1031
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1032
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1039
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1040
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
-msgid "Currency Update Interval"
-msgstr ""
-
-#: common/models.py:1119
-msgid "How often to update exchange rates (set to zero to disable)"
-msgstr ""
-
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
-msgid "days"
-msgstr ""
-
-#: common/models.py:1129
-msgid "Currency Update Plugin"
-msgstr ""
-
-#: common/models.py:1130
-msgid "Currency update plugin to use"
-msgstr ""
-
-#: common/models.py:1136
+#: common/models.py:1047
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1048
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1054
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1055
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1066
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1067
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1072
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1073
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1079
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1080
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1089
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1090
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1096 common/models.py:1114 common/models.py:1121
+#: common/models.py:1132 common/models.py:1143 common/models.py:1374
+#: common/models.py:1398 common/models.py:1521 common/models.py:1777
+msgid "days"
+msgstr ""
+
+#: common/models.py:1100
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1101
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1107
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1108
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1118
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1119
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1129
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1130
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1140
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1141
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1151 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
-msgid "Enable barcode scanner support in the web interface"
+#: common/models.py:1152
+msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1158
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1159
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1169
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1170
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1176
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1177
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1183
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1184
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1188
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1189
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1195
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1196
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1202
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1203
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1209
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1210
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1216
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1217
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1223
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1224
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:763
+#: common/models.py:1230 part/admin.py:55 part/models.py:3621
+#: report/models.py:170 templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:727
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1231
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
-#: templates/js/translated/table_filters.js:330
-#: templates/js/translated/table_filters.js:717
+#: common/models.py:1237 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
+#: templates/js/translated/table_filters.js:306
+#: templates/js/translated/table_filters.js:681
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1238
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
-#: templates/js/translated/table_filters.js:725
+#: common/models.py:1244 part/admin.py:52 part/models.py:1007
+#: templates/js/translated/table_filters.js:689
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1245
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1251 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1252
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
-#: templates/js/translated/table_filters.js:751
+#: common/models.py:1258 part/admin.py:54 part/models.py:1023
+#: templates/js/translated/table_filters.js:715
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1259
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1265 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:767
+#: templates/js/translated/table_filters.js:731
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1266
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1272 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:771
+#: templates/js/translated/table_filters.js:735
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1273
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1279
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1280
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1286
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1287
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1293
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1294
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1300 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1301
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1307
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1308
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1315
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1316
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1321
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1322
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1328
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1329
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1339
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1340
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1350
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1351
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1357
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1358
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1364
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1365
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1371
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1372
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1382
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1383
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1389
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1390
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1396
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1397
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1407
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1408
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1414
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1415
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1421
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1422
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1428
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1429
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1438
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1439
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1445 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1446
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1452
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1453
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1463
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1464
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1470
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1471
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1477
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1478
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1484
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1485
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1491
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1492
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1498
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1499
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1504
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1505
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1511
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1512
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1518
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1519
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1526
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1527
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1533
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1534
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1540
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1541
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1546
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1547
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1553
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1554
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1560
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1561
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1567
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1568
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1574
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1575
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1581
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1582
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1588
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1589
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1595
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1596
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1602
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1603
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1609
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1610
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1617
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1618
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1624
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1625
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1631
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1632
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1638
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1639
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1645
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1646
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1652
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1653
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1659
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1660
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1666
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1667
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1673
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1674
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1680
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1681
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1687
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1688
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1694
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1695
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1703
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1704
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1711
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1712
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1719
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1720
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1727
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1728
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1735
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1736
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1743
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1744
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1750
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1751
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1757
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1758
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1764
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1765
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1774
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1775
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1792 common/models.py:2222
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1833
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1834
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1840
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1841
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1847
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1848
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1854
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1855
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1861
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1862
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1868
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1869
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1875
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1876
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1882
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1883
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1889
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1890
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1896
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1897
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1903
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:1904
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:1910
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:1911
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:1917
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:1918
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:1924
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:1925
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:1931
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:1932
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:1938
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:1939
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:1945
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:1946
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:1952
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:1953
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:1959
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:1960
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:1966
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:1967
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:1973
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:1974
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:1980
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:1981
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:1987
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:1988
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:1994
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:1995
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2001
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2002
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2008
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2009
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2015
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2016
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2022
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2023
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2029
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2030
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2036
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2037
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2043
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2044
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2050
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2051
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2057
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2058
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2064
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2065
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2071
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2072
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2078
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2079
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2085
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2086
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2092
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2093
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2099
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2100
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2106
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2107
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2113
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2114
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2120
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2121
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2127
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2128
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2134
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2135
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2141
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2142
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2156 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2157
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2163 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2164
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2170
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2171
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2180
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2181
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2189
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2190
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2198
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2199
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2207
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2208
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2252
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
-#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
+#: common/models.py:2259 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1952
+#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1864
#: templates/js/translated/pricing.js:621
-#: templates/js/translated/return_order.js:738
+#: templates/js/translated/return_order.js:734
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2260
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2420 common/models.py:2598
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2421
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2430
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2435 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
-#: templates/js/translated/table_filters.js:488
-#: templates/js/translated/table_filters.js:516
-#: templates/js/translated/table_filters.js:712
+#: templates/js/translated/table_filters.js:464
+#: templates/js/translated/table_filters.js:480
+#: templates/js/translated/table_filters.js:676
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2436
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2450
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2451
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2458
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2459
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2565
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2566
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2574
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2575
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2582
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2583
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2589
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2590
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2599
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2604
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2605
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2759
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2765 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2775 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
-#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
+#: common/models.py:2780 templates/InvenTree/settings/plugin_settings.html:32
+#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:106
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2785 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2790
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2791
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2811 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3493,56 +3466,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2812
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2856
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2878
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2884 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2885
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2891 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2892
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3573,7 +3546,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3615,7 +3588,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3657,301 +3630,301 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:675
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:438
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
#: templates/js/translated/company.js:1286
#: templates/js/translated/company.js:1601
-#: templates/js/translated/table_filters.js:792
+#: templates/js/translated/table_filters.js:756
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:444
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
-#: templates/js/translated/company.js:1620 templates/js/translated/part.js:1797
-#: templates/js/translated/purchase_order.js:1830
-#: templates/js/translated/purchase_order.js:2032
+#: templates/js/translated/company.js:1620 templates/js/translated/part.js:1781
+#: templates/js/translated/purchase_order.js:1826
+#: templates/js/translated/purchase_order.js:2028
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
-#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
-#: templates/js/translated/stock.js:1502
+#: stock/models.py:2286 templates/js/translated/company.js:1156
+#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1473
+#: templates/js/translated/stock.js:1464
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
-#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
-#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
+#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1492
+#: templates/js/translated/part.js:1596 templates/js/translated/part.js:2344
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:427 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
-#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1765
+#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1749
#: templates/js/translated/pricing.js:498
-#: templates/js/translated/purchase_order.js:1672
-#: templates/js/translated/table_filters.js:796
+#: templates/js/translated/purchase_order.js:1668
+#: templates/js/translated/table_filters.js:760
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
-#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:433
+#: templates/js/translated/company.js:349 templates/js/translated/part.js:1767
#: templates/js/translated/pricing.js:510
-#: templates/js/translated/purchase_order.js:1829
-#: templates/js/translated/purchase_order.js:2007
+#: templates/js/translated/purchase_order.js:1825
+#: templates/js/translated/purchase_order.js:2003
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:433
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:119 stock/models.py:701 stock/serializers.py:1238
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
-#: templates/js/translated/stock.js:2394
+#: templates/js/translated/stock.js:2356
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
-#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
+#: company/models.py:746 templates/js/translated/company.js:1641
+#: templates/js/translated/part.js:1801 templates/js/translated/part.js:1856
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
#: templates/js/translated/purchase_order.js:1088
-#: templates/js/translated/purchase_order.js:2063
-#: templates/js/translated/purchase_order.js:2080
+#: templates/js/translated/purchase_order.js:2059
+#: templates/js/translated/purchase_order.js:2076
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4013,17 +3986,17 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1751 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:720
+#: stock/models.py:721 stock/serializers.py:985
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
#: templates/js/translated/return_order.js:293
#: templates/js/translated/sales_order.js:781
-#: templates/js/translated/stock.js:2930
-#: templates/js/translated/table_filters.js:800
+#: templates/js/translated/stock.js:2881
+#: templates/js/translated/table_filters.js:764
msgid "Customer"
msgstr ""
@@ -4031,7 +4004,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4195,7 +4168,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4226,7 +4199,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4247,7 +4220,7 @@ msgid "New Parameter"
msgstr ""
#: company/templates/company/manufacturer_part.html:206
-#: templates/js/translated/part.js:1419
+#: templates/js/translated/part.js:1403
msgid "Add Parameter"
msgstr ""
@@ -4276,11 +4249,11 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:684
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
-#: templates/js/translated/stock.js:2250
+#: templates/js/translated/stock.js:2212
msgid "Supplier Part"
msgstr ""
@@ -4336,7 +4309,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:211
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:199
-#: templates/js/translated/stock.js:537
+#: templates/js/translated/stock.js:503
msgid "New Stock Item"
msgstr ""
@@ -4366,15 +4339,15 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
-#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: part/templates/part/category_sidebar.html:17 stock/admin.py:47
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1057
-#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737
+#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1041
+#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2699
#: users/models.py:41
msgid "Stock Items"
msgstr ""
@@ -4383,28 +4356,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4424,7 +4397,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:277
msgid "Enabled"
msgstr ""
@@ -4448,7 +4421,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:270
msgid "Filename Pattern"
msgstr ""
@@ -4462,8 +4435,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:298 report/models.py:445
+#: report/models.py:483 report/models.py:521 report/models.py:645
msgid "Filters"
msgstr ""
@@ -4480,573 +4453,573 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
-#: templates/js/translated/purchase_order.js:2104
+#: templates/js/translated/purchase_order.js:2100
#: templates/js/translated/sales_order.js:1844
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
#: stock/templates/stock/item_base.html:177
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/part.js:1742 templates/js/translated/pricing.js:804
+#: templates/js/translated/part.js:1726 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:165
#: templates/js/translated/purchase_order.js:759
-#: templates/js/translated/purchase_order.js:1656
-#: templates/js/translated/stock.js:2230 templates/js/translated/stock.js:2878
+#: templates/js/translated/purchase_order.js:1652
+#: templates/js/translated/stock.js:2192 templates/js/translated/stock.js:2829
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1922 order/models.py:1968
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
#: templates/js/translated/return_order.js:278
-#: templates/js/translated/stock.js:2912
+#: templates/js/translated/stock.js:2863
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
-#: templates/js/translated/purchase_order.js:1681
+#: order/models.py:404 order/templates/order/order_base.html:148
+#: templates/js/translated/purchase_order.js:1677
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1774
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1775
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1781
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1768
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1769
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1921
+#: order/models.py:1968 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
-#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
+#: order/models.py:1216 order/templates/order/order_base.html:196
+#: templates/js/translated/part.js:1849 templates/js/translated/part.js:1880
#: templates/js/translated/purchase_order.js:1291
-#: templates/js/translated/purchase_order.js:2148
-#: templates/js/translated/return_order.js:761
+#: templates/js/translated/purchase_order.js:2144
+#: templates/js/translated/return_order.js:757
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:598
+#: templates/js/translated/table_filters.js:562
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:823 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
-#: templates/js/translated/stock.js:2281
+#: templates/js/translated/stock.js:2243
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1640 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:433
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1605
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1607
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1610
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1620 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1623
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1624
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1632
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1641
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
-#: templates/js/translated/return_order.js:719
+#: order/models.py:1654 order/models.py:1929
+#: templates/js/translated/return_order.js:715
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1655
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1658
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1738
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1752
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1763
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1914
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1930
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1935
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1936
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1947 templates/js/translated/return_order.js:726
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1947
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1953
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5214,12 +5187,12 @@ msgstr ""
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:133 templates/js/translated/build.js:518
-#: templates/js/translated/build.js:1610
+#: templates/js/translated/build.js:1602
#: templates/js/translated/purchase_order.js:703
#: templates/js/translated/purchase_order.js:1221
#: templates/js/translated/return_order.js:503
#: templates/js/translated/sales_order.js:1106
-#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:680 templates/js/translated/stock.js:849
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -5342,8 +5315,8 @@ msgstr ""
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:99
#: part/templates/part/part_pricing.html:114
-#: templates/js/translated/part.js:1069
-#: templates/js/translated/purchase_order.js:1731
+#: templates/js/translated/part.js:1053
+#: templates/js/translated/purchase_order.js:1727
#: templates/js/translated/return_order.js:378
#: templates/js/translated/sales_order.js:852
msgid "Total Cost"
@@ -5403,7 +5376,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5433,47 +5406,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
-#: stock/admin.py:119
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
+#: stock/admin.py:101
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
-#: stock/admin.py:120
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
+#: stock/admin.py:102
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
-#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
-#: templates/js/translated/stock.js:2006
+#: templates/js/translated/part.js:1207 templates/js/translated/part.js:2315
+#: templates/js/translated/stock.js:1968
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
-#: templates/js/translated/part.js:2342
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:183 templates/js/translated/part.js:1212
+#: templates/js/translated/part.js:2321
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5481,23 +5454,23 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
#: part/admin.py:61 part/templates/part/part_base.html:199
#: templates/js/translated/company.js:1679
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:331
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2585
+#: templates/js/translated/part.js:690 templates/js/translated/part.js:2127
#: templates/js/translated/table_filters.js:170
msgid "On Order"
msgstr ""
@@ -5506,107 +5479,107 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:142
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:2147
+#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:124
+#: templates/js/translated/part.js:695 templates/js/translated/part.js:2131
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:950
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:960
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:42 stock/admin.py:116
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:43
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:336
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/part.js:2799 templates/js/translated/search.js:130
+#: templates/js/translated/part.js:2778 templates/js/translated/search.js:130
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5615,7 +5588,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5630,9 +5603,9 @@ msgstr ""
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:134 stock/models.py:187 templates/js/translated/stock.js:2743
+#: part/models.py:134 stock/models.py:124 templates/js/translated/stock.js:2705
#: templates/js/translated/table_filters.js:239
-#: templates/js/translated/table_filters.js:283
+#: templates/js/translated/table_filters.js:259
msgid "Structural"
msgstr ""
@@ -5648,12 +5621,11 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:145 stock/models.py:85 stock/models.py:175
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: part/models.py:145 stock/models.py:113
msgid "Icon"
msgstr ""
-#: part/models.py:146 stock/models.py:176
+#: part/models.py:146 stock/models.py:114
msgid "Icon (optional)"
msgstr ""
@@ -5661,719 +5633,719 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:349 part/serializers.py:964
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
-#: templates/js/translated/part.js:2372
+#: templates/js/translated/part.js:2351
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
-#: templates/js/translated/part.js:2466
+#: templates/js/translated/part.js:2445
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
-#: templates/js/translated/part.js:1082 templates/js/translated/pricing.js:826
+#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/js/translated/part.js:1066 templates/js/translated/pricing.js:826
#: templates/js/translated/pricing.js:950
-#: templates/js/translated/purchase_order.js:1710
-#: templates/js/translated/stock.js:2792
+#: templates/js/translated/purchase_order.js:1706
+#: templates/js/translated/stock.js:2743
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:425
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:432
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2842
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
-#: templates/js/translated/table_filters.js:477
+#: part/models.py:3348 templates/js/translated/part.js:2851
+#: templates/js/translated/table_filters.js:453
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2859
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2866
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
-#: templates/js/translated/table_filters.js:817
+#: part/models.py:3484 templates/js/translated/part.js:1608
+#: templates/js/translated/table_filters.js:781
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1617
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:577
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:342
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:350
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:381
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:381
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:386
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:386
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:391 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:391
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:396
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:396
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:401
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:401
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:411
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:411
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:417
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:417
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:427
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:438
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:444
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:452
+#: part/serializers.py:451
msgid "Selected company is not a valid supplier"
msgstr ""
@@ -6381,186 +6353,186 @@ msgstr ""
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:471
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:479
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
-#: templates/js/translated/part.js:468
+#: part/serializers.py:732 part/templates/part/copy_part.html:9
+#: templates/js/translated/part.js:452
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:732
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:737 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:737
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:742
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:742
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:748
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:749
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:958
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:964
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:970
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:975
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:976
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:981
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:982
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:987
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:988
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:996
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1086
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1087
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1374
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1382
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1383
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1388
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1389
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1394
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1395
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1400
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1401
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1441
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1442
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1472
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1515
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1518
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1521
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1530
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1538
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1559
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
-#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
-#: templates/js/translated/purchase_order.js:2063
+#: part/stocktake.py:225 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1801 templates/js/translated/part.js:1856
+#: templates/js/translated/purchase_order.js:2059
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:295
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:296
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6700,9 +6672,9 @@ msgid "Add stocktake information"
msgstr ""
#: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50
-#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30
+#: stock/admin.py:130 templates/InvenTree/settings/part_stocktake.html:30
#: templates/InvenTree/settings/sidebar.html:53
-#: templates/js/translated/stock.js:2186 users/models.py:39
+#: templates/js/translated/stock.js:2148 users/models.py:39
msgid "Stocktake"
msgstr ""
@@ -6776,7 +6748,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6800,15 +6772,15 @@ msgstr ""
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:659
+#: part/templates/part/detail.html:654
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:667
+#: part/templates/part/detail.html:662
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:752
+#: part/templates/part/detail.html:747
msgid "Add Test Result Template"
msgstr ""
@@ -6889,7 +6861,7 @@ msgstr ""
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:93 templates/js/translated/part.js:2288
+#: part/templates/part/part_base.html:93 templates/js/translated/part.js:2267
msgid "Part actions"
msgstr ""
@@ -6936,8 +6908,8 @@ msgstr ""
#: part/templates/part/part_base.html:148
#: templates/js/translated/company.js:1277
#: templates/js/translated/company.js:1565
-#: templates/js/translated/model_renderers.js:304
-#: templates/js/translated/part.js:811 templates/js/translated/part.js:1215
+#: templates/js/translated/model_renderers.js:291
+#: templates/js/translated/part.js:795 templates/js/translated/part.js:1199
msgid "Inactive"
msgstr ""
@@ -6960,7 +6932,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -6969,7 +6941,7 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:324 templates/js/translated/bom.js:1071
-#: templates/js/translated/part.js:1261 templates/js/translated/part.js:2439
+#: templates/js/translated/part.js:1245 templates/js/translated/part.js:2418
#: templates/js/translated/pricing.js:391
#: templates/js/translated/pricing.js:1054
msgid "Price Range"
@@ -6992,7 +6964,7 @@ msgstr ""
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:474 templates/js/translated/part.js:2282
+#: part/templates/part/part_base.html:474 templates/js/translated/part.js:2261
msgid "part"
msgstr ""
@@ -7066,9 +7038,9 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:51
-#: templates/js/translated/part.js:1239 templates/js/translated/part.js:2140
-#: templates/js/translated/part.js:2387 templates/js/translated/stock.js:1059
-#: templates/js/translated/stock.js:2040 templates/navbar.html:31
+#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2124
+#: templates/js/translated/part.js:2366 templates/js/translated/stock.js:1021
+#: templates/js/translated/stock.js:2002 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -7097,11 +7069,11 @@ msgstr ""
msgid "Refresh Part Pricing"
msgstr ""
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:25 stock/admin.py:129
#: stock/templates/stock/item_base.html:447
#: templates/js/translated/company.js:1693
#: templates/js/translated/company.js:1703
-#: templates/js/translated/stock.js:2216
+#: templates/js/translated/stock.js:2178
msgid "Last Updated"
msgstr ""
@@ -7164,8 +7136,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:701
-#: templates/js/translated/part.js:2135 templates/js/translated/part.js:2137
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:685
+#: templates/js/translated/part.js:2119 templates/js/translated/part.js:2121
msgid "No Stock"
msgstr ""
@@ -7218,11 +7190,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7260,7 +7232,7 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:109
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
@@ -7272,12 +7244,12 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:119
-#: templates/js/translated/purchase_order.js:1391
+#: plugin/base/barcodes/api.py:120
+#: templates/js/translated/purchase_order.js:1387
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:215
+#: plugin/base/barcodes/api.py:217
msgid "No match found for provided value"
msgstr ""
@@ -7295,7 +7267,6 @@ msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:28
#: plugin/builtin/integration/core_notifications.py:34
-#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
msgid "InvenTree contributors"
msgstr ""
@@ -7334,18 +7305,10 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
-#: plugin/builtin/integration/currency_exchange.py:23
-msgid "InvenTree Currency Exchange"
-msgstr ""
-
-#: plugin/builtin/integration/currency_exchange.py:24
-msgid "Default currency exchange integration"
-msgstr ""
-
#: plugin/builtin/labels/inventree_label.py:20
msgid "InvenTree PDF label printer"
msgstr ""
@@ -7362,23 +7325,6 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/installer.py:140
-msgid "Permission denied: only staff users can install plugins"
-msgstr ""
-
-#: plugin/installer.py:186
-msgid "Installed plugin successfully"
-msgstr ""
-
-#: plugin/installer.py:192
-#, python-brace-format
-msgid "Installed plugin into {path}"
-msgstr ""
-
-#: plugin/installer.py:201
-msgid "Plugin installation failed"
-msgstr ""
-
#: plugin/models.py:28
msgid "Plugin Configuration"
msgstr ""
@@ -7403,43 +7349,37 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
-#: templates/js/translated/table_filters.js:500
-msgid "Installed"
-msgstr ""
-
-#: plugin/models.py:138
+#: plugin/models.py:131
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:140
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
-#: templates/js/translated/plugin.js:50
+#: plugin/models.py:166 templates/InvenTree/settings/plugin_settings.html:9
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:217
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:478
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:480
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:482
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7476,184 +7416,148 @@ msgstr ""
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/samples/integration/sample_currency_exchange.py:15
-msgid "Sample currency exchange plugin"
-msgstr ""
-
-#: plugin/samples/integration/sample_currency_exchange.py:18
-msgid "InvenTree Contributors"
-msgstr ""
-
-#: plugin/serializers.py:87
+#: plugin/serializers.py:90
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:88
+#: plugin/serializers.py:91
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:93
+#: plugin/serializers.py:96
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:94
+#: plugin/serializers.py:97
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:97
+#: plugin/serializers.py:100
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:98
+#: plugin/serializers.py:101
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:110
+#: plugin/serializers.py:113
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:112
+#: plugin/serializers.py:115
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:193
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:194
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
-#: report/helpers.py:14
-msgid "A3"
-msgstr ""
-
-#: report/helpers.py:15
-msgid "Legal"
-msgstr ""
-
-#: report/helpers.py:16
-msgid "Letter"
-msgstr ""
-
-#: report/models.py:171
+#: report/models.py:165
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:171
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:178
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:184
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
-msgid "Page size for PDF reports"
-msgstr ""
-
-#: report/models.py:203
-msgid "Landscape"
-msgstr ""
-
-#: report/models.py:204
-msgid "Render report in landscape orientation"
-msgstr ""
-
-#: report/models.py:305
+#: report/models.py:271
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:278
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:299
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:307
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:308
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:369
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:370
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:411
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:412
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:446
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:484
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:522
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:575
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:576
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:580
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:617
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:618
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:625
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:646
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7674,7 +7578,7 @@ msgstr ""
#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527
#: templates/js/translated/pricing.js:596
#: templates/js/translated/pricing.js:834
-#: templates/js/translated/purchase_order.js:2094
+#: templates/js/translated/purchase_order.js:2090
#: templates/js/translated/sales_order.js:1834
msgid "Unit Price"
msgstr ""
@@ -7687,23 +7591,23 @@ msgstr ""
#: report/templates/report/inventree_po_report_base.html:72
#: report/templates/report/inventree_so_report_base.html:72
-#: templates/js/translated/purchase_order.js:1996
+#: templates/js/translated/purchase_order.js:1992
#: templates/js/translated/sales_order.js:1803
msgid "Total"
msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
-#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
-#: templates/js/translated/build.js:2337
-#: templates/js/translated/model_renderers.js:222
+#: stock/models.py:725 stock/templates/stock/item_base.html:312
+#: templates/js/translated/build.js:508 templates/js/translated/build.js:1340
+#: templates/js/translated/build.js:2325
+#: templates/js/translated/model_renderers.js:219
#: templates/js/translated/return_order.js:537
-#: templates/js/translated/return_order.js:721
+#: templates/js/translated/return_order.js:717
#: templates/js/translated/sales_order.js:312
#: templates/js/translated/sales_order.js:1608
#: templates/js/translated/sales_order.js:1693
-#: templates/js/translated/stock.js:596
+#: templates/js/translated/stock.js:562
msgid "Serial Number"
msgstr ""
@@ -7720,12 +7624,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2274 templates/js/translated/stock.js:1437
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2280
msgid "Result"
msgstr ""
@@ -7751,377 +7655,356 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:168
-#: stock/admin.py:122 templates/js/translated/stock.js:700
-#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3079
+#: stock/admin.py:104 templates/js/translated/stock.js:666
+#: templates/js/translated/stock.js:837 templates/js/translated/stock.js:3030
msgid "Serial"
msgstr ""
-#: stock/admin.py:40 stock/admin.py:126
+#: stock/admin.py:39 stock/admin.py:108
msgid "Location ID"
msgstr ""
-#: stock/admin.py:41 stock/admin.py:127
+#: stock/admin.py:40 stock/admin.py:109
msgid "Location Name"
msgstr ""
-#: stock/admin.py:45 stock/templates/stock/location.html:130
+#: stock/admin.py:44 stock/templates/stock/location.html:130
#: stock/templates/stock/location.html:136
msgid "Location Path"
msgstr ""
-#: stock/admin.py:118
+#: stock/admin.py:100
msgid "Stock Item ID"
msgstr ""
-#: stock/admin.py:125
+#: stock/admin.py:107
msgid "Status Code"
msgstr ""
-#: stock/admin.py:128
+#: stock/admin.py:110
msgid "Supplier Part ID"
msgstr ""
-#: stock/admin.py:129
+#: stock/admin.py:111
msgid "Supplier ID"
msgstr ""
-#: stock/admin.py:130
+#: stock/admin.py:112
msgid "Supplier Name"
msgstr ""
-#: stock/admin.py:131
+#: stock/admin.py:113
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:114 stock/models.py:708
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
-#: stock/admin.py:133
+#: stock/admin.py:115
msgid "Build ID"
msgstr ""
-#: stock/admin.py:135
+#: stock/admin.py:117
msgid "Sales Order ID"
msgstr ""
-#: stock/admin.py:136
+#: stock/admin.py:118
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:143
+#: stock/admin.py:125
msgid "Review Needed"
msgstr ""
-#: stock/admin.py:144
+#: stock/admin.py:126
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:131 stock/models.py:789
#: stock/templates/stock/item_base.html:434
-#: templates/js/translated/stock.js:2200
+#: templates/js/translated/stock.js:2162
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:434 templates/js/translated/table_filters.js:403
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:641
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:648
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:676
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:685
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:708
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:56
-msgid "Stock Location type"
-msgstr ""
-
-#: stock/models.py:57
-msgid "Stock Location types"
-msgstr ""
-
-#: stock/models.py:86
-msgid "Default icon for all locations that have no icon set (optional)"
-msgstr ""
-
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:54 stock/models.py:692
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:117 stock/templates/stock/location.html:178
+#: stock/models.py:55 stock/templates/stock/location.html:178
#: templates/InvenTree/search.html:166 templates/js/translated/search.js:178
#: users/models.py:40
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:118 stock/models.py:828
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:119 stock/models.py:829
msgid "Select Owner"
msgstr ""
-#: stock/models.py:189
+#: stock/models.py:126
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:195 templates/js/translated/stock.js:2752
+#: stock/models.py:132 templates/js/translated/stock.js:2714
#: templates/js/translated/table_filters.js:243
msgid "External"
msgstr ""
-#: stock/models.py:196
+#: stock/models.py:133
msgid "This is an external stock location"
msgstr ""
-#: stock/models.py:202 templates/js/translated/stock.js:2761
-#: templates/js/translated/table_filters.js:246
-msgid "Location type"
-msgstr ""
-
-#: stock/models.py:205
-msgid "Stock location type of this location"
-msgstr ""
-
-#: stock/models.py:270
+#: stock/models.py:175
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:557
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:583 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:600
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:610 stock/models.py:619
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:611
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:633
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:639
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:653
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:667
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:677
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:685
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:695
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:702 stock/serializers.py:1239
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:711
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:727
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:741 stock/serializers.py:1224
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:746
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:753
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:755
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:761 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:763
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:774
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:777
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:783
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:790
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:824
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:852
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1378
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1384
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1390
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1393
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1396
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1403 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1474
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1477
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1480
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1483
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1486
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1489
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1496 stock/serializers.py:1135
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1500
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1504
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1508
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1702
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2192
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2250
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2256
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2275
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2281
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2287
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2294
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2300
msgid "Test notes"
msgstr ""
@@ -8133,141 +8016,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1092 stock/serializers.py:1363
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:947
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:951
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:955
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:986
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:992
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1000
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1010 stock/serializers.py:1270
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1099
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1104
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1105
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1110
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1111
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1121
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1210
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1231
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1260
msgid "Stock transaction notes"
msgstr ""
@@ -8308,7 +8191,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3230
+#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3177
msgid "Install Stock Item"
msgstr ""
@@ -8316,7 +8199,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1667
+#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1629
msgid "Add Test Result"
msgstr ""
@@ -8339,17 +8222,17 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:80
-#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1792
+#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1754
msgid "Count stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: templates/js/translated/stock.js:1774
+#: templates/js/translated/stock.js:1736
msgid "Add stock"
msgstr ""
#: stock/templates/stock/item_base.html:83
-#: templates/js/translated/stock.js:1783
+#: templates/js/translated/stock.js:1745
msgid "Remove stock"
msgstr ""
@@ -8358,12 +8241,12 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:89
-#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1801
+#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1763
msgid "Transfer stock"
msgstr ""
#: stock/templates/stock/item_base.html:92
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1817
msgid "Assign to customer"
msgstr ""
@@ -8404,7 +8287,7 @@ msgid "Delete stock item"
msgstr ""
#: stock/templates/stock/item_base.html:170 templates/InvenTree/search.html:139
-#: templates/js/translated/build.js:2105 templates/navbar.html:38
+#: templates/js/translated/build.js:2093 templates/navbar.html:38
msgid "Build"
msgstr ""
@@ -8470,7 +8353,7 @@ msgid "Available Quantity"
msgstr ""
#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/build.js:2362
+#: templates/js/translated/build.js:2350
msgid "No location set"
msgstr ""
@@ -8488,7 +8371,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:438
-#: templates/js/translated/table_filters.js:435
+#: templates/js/translated/table_filters.js:411
msgid "Expired"
msgstr ""
@@ -8498,7 +8381,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:440
-#: templates/js/translated/table_filters.js:441
+#: templates/js/translated/table_filters.js:417
msgid "Stale"
msgstr ""
@@ -8507,7 +8390,7 @@ msgid "No stocktake performed"
msgstr ""
#: stock/templates/stock/item_base.html:508
-#: templates/js/translated/stock.js:1922
+#: templates/js/translated/stock.js:1884
msgid "stock item"
msgstr ""
@@ -8539,7 +8422,7 @@ msgstr ""
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:663
+#: stock/templates/stock/item_base.html:659
msgid "Return to Stock"
msgstr ""
@@ -8617,20 +8500,20 @@ msgstr ""
msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:288
-#: templates/js/translated/stock.js:2543
+#: stock/templates/stock/location.html:279
+#: templates/js/translated/stock.js:2505
msgid "stock location"
msgstr ""
-#: stock/templates/stock/location.html:316
+#: stock/templates/stock/location.html:307
msgid "Scanned stock container into this location"
msgstr ""
-#: stock/templates/stock/location.html:389
+#: stock/templates/stock/location.html:380
msgid "Stock Location QR Code"
msgstr ""
-#: stock/templates/stock/location.html:400
+#: stock/templates/stock/location.html:391
msgid "Link Barcode to Stock Location"
msgstr ""
@@ -8940,7 +8823,7 @@ msgid "Plugins"
msgstr ""
#: templates/InvenTree/settings/plugin.html:41
-#: templates/js/translated/plugin.js:150
+#: templates/js/translated/plugin.js:151
msgid "Install Plugin"
msgstr ""
@@ -8966,7 +8849,7 @@ msgid "Plugin information"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:42
-#: templates/js/translated/plugin.js:85
+#: templates/js/translated/plugin.js:89
msgid "Version"
msgstr ""
@@ -9003,8 +8886,7 @@ msgid "Installation path"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:100
-#: templates/js/translated/plugin.js:67
-#: templates/js/translated/table_filters.js:492
+#: templates/js/translated/plugin.js:77
msgid "Builtin"
msgstr ""
@@ -9012,31 +8894,21 @@ msgstr ""
msgid "This is a builtin plugin which cannot be disabled"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:107
-#: templates/js/translated/plugin.js:71
-#: templates/js/translated/table_filters.js:496
-msgid "Sample"
-msgstr ""
-
-#: templates/InvenTree/settings/plugin_settings.html:108
-msgid "This is a sample plugin"
-msgstr ""
-
-#: templates/InvenTree/settings/plugin_settings.html:113
+#: templates/InvenTree/settings/plugin_settings.html:106
msgid "Commit Author"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:117
+#: templates/InvenTree/settings/plugin_settings.html:110
#: templates/about.html:36
msgid "Commit Date"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:121
+#: templates/InvenTree/settings/plugin_settings.html:114
#: templates/about.html:29
msgid "Commit Hash"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:125
+#: templates/InvenTree/settings/plugin_settings.html:118
msgid "Commit Message"
msgstr ""
@@ -9125,9 +8997,9 @@ msgid "Edit"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:81
-#: templates/js/translated/forms.js:508 templates/js/translated/helpers.js:105
-#: templates/js/translated/part.js:389 templates/js/translated/pricing.js:629
-#: templates/js/translated/stock.js:245 users/models.py:257
+#: templates/js/translated/forms.js:506 templates/js/translated/helpers.js:105
+#: templates/js/translated/part.js:373 templates/js/translated/pricing.js:629
+#: templates/js/translated/stock.js:215 users/models.py:256
msgid "Delete"
msgstr ""
@@ -9162,12 +9034,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:288
-#: templates/js/translated/part.js:1642
+#: templates/js/translated/part.js:1626
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:289
-#: templates/js/translated/part.js:1643
+#: templates/js/translated/part.js:1627
msgid "Delete Template"
msgstr ""
@@ -9175,44 +9047,18 @@ msgstr ""
msgid "Edit Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:329
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:364
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:390
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:420
-msgid "No stock location types found"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:441
-msgid "Location count"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
-msgid "Edit Location Type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:447
-msgid "Delete Location type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:470
-msgid "Delete Location Type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:480
-#: templates/InvenTree/settings/stock.html:35
-msgid "New Location Type"
-msgstr ""
-
#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -9231,9 +9077,9 @@ msgid "Home Page"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:15
-#: templates/js/translated/forms.js:2045 templates/js/translated/tables.js:543
-#: templates/navbar.html:107 templates/search.html:8
-#: templates/search_form.html:6 templates/search_form.html:7
+#: templates/js/translated/tables.js:543 templates/navbar.html:107
+#: templates/search.html:8 templates/search_form.html:6
+#: templates/search_form.html:7
msgid "Search"
msgstr ""
@@ -9266,10 +9112,6 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:31
-msgid "Stock Location Types"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:13
msgid "Account Settings"
msgstr ""
@@ -9579,7 +9421,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:728
+#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:726
msgid "Confirm"
msgstr ""
@@ -9759,26 +9601,18 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
-msgid "Pending Database Migrations"
-msgstr ""
-
-#: templates/base.html:116
-msgid "There are pending database migrations which require attention"
-msgstr ""
-
#: templates/email/build_order_completed.html:9
#: templates/email/new_order_assigned.html:9
#: templates/email/overdue_build_order.html:9
@@ -9807,7 +9641,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2529
msgid "Required Quantity"
msgstr ""
@@ -9821,15 +9655,15 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/part.js:3182
+#: templates/js/translated/part.js:3161
msgid "Minimum Quantity"
msgstr ""
-#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1130
+#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1124
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1131
+#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1125
msgid "No response from the InvenTree server"
msgstr ""
@@ -9841,27 +9675,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1140
+#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1134
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1141
+#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1135
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1145
+#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1139
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1146
+#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1140
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1150
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1144
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1151
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1145
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -9873,27 +9707,19 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1155
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1149
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1156
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1150
msgid "Connection timeout while requesting data from server"
msgstr ""
#: templates/js/translated/api.js:261
-msgid "Error 503: Service Unavailable"
-msgstr ""
-
-#: templates/js/translated/api.js:262
-msgid "The server is currently unavailable"
-msgstr ""
-
-#: templates/js/translated/api.js:265
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:266
+#: templates/js/translated/api.js:262
msgid "Error code"
msgstr ""
@@ -9962,7 +9788,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:252
-#: templates/js/translated/modals.js:1120
+#: templates/js/translated/modals.js:1114
msgid "Invalid server response"
msgstr ""
@@ -9986,7 +9812,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1117
msgid "Remove stock item"
msgstr ""
@@ -10057,8 +9883,8 @@ msgid "Row Data"
msgstr ""
#: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700
-#: templates/js/translated/modals.js:74 templates/js/translated/modals.js:628
-#: templates/js/translated/modals.js:752 templates/js/translated/modals.js:1060
+#: templates/js/translated/modals.js:71 templates/js/translated/modals.js:622
+#: templates/js/translated/modals.js:746 templates/js/translated/modals.js:1054
#: templates/js/translated/purchase_order.js:802 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
@@ -10176,7 +10002,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2485
+#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2473
msgid "Variant stock allowed"
msgstr ""
@@ -10184,74 +10010,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2567
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2571
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
-#: templates/js/translated/part.js:1253
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2573
+#: templates/js/translated/part.js:1237
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2575
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2558
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2458
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
@@ -10295,13 +10121,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:357 templates/js/translated/stock.js:119
-#: templates/js/translated/stock.js:294
+#: templates/js/translated/build.js:357 templates/js/translated/stock.js:118
+#: templates/js/translated/stock.js:264
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:359 templates/js/translated/stock.js:121
-#: templates/js/translated/stock.js:296
+#: templates/js/translated/build.js:359 templates/js/translated/stock.js:120
+#: templates/js/translated/stock.js:266
msgid "Latest serial number"
msgstr ""
@@ -10353,13 +10179,13 @@ msgstr ""
msgid "Deallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:572 templates/js/translated/build.js:700
-#: templates/js/translated/build.js:826
+#: templates/js/translated/build.js:572 templates/js/translated/build.js:696
+#: templates/js/translated/build.js:818
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:573 templates/js/translated/build.js:701
-#: templates/js/translated/build.js:827
+#: templates/js/translated/build.js:573 templates/js/translated/build.js:697
+#: templates/js/translated/build.js:819
msgid "At least one build output must be selected"
msgstr ""
@@ -10367,265 +10193,264 @@ msgstr ""
msgid "Selected build outputs will be marked as complete"
msgstr ""
-#: templates/js/translated/build.js:591 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:849
+#: templates/js/translated/build.js:591 templates/js/translated/build.js:721
+#: templates/js/translated/build.js:841
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:619
+#: templates/js/translated/build.js:615
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:716
+#: templates/js/translated/build.js:712
msgid "Selected build outputs will be marked as scrapped"
msgstr ""
-#: templates/js/translated/build.js:718
+#: templates/js/translated/build.js:714
msgid "Scrapped output are marked as rejected"
msgstr ""
-#: templates/js/translated/build.js:719
+#: templates/js/translated/build.js:715
msgid "Allocated stock items will no longer be available"
msgstr ""
-#: templates/js/translated/build.js:720
+#: templates/js/translated/build.js:716
msgid "The completion status of the build order will not be adjusted"
msgstr ""
-#: templates/js/translated/build.js:751
+#: templates/js/translated/build.js:743
msgid "Scrap Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:841
+#: templates/js/translated/build.js:833
msgid "Selected build outputs will be deleted"
msgstr ""
-#: templates/js/translated/build.js:843
+#: templates/js/translated/build.js:835
msgid "Build output data will be permanently deleted"
msgstr ""
-#: templates/js/translated/build.js:844
+#: templates/js/translated/build.js:836
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: templates/js/translated/build.js:862
+#: templates/js/translated/build.js:854
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:941
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:978 templates/js/translated/build.js:2326
+#: templates/js/translated/build.js:970 templates/js/translated/build.js:2314
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:984
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1006
msgid "Complete outputs"
msgstr ""
-#: templates/js/translated/build.js:1032
+#: templates/js/translated/build.js:1024
msgid "Scrap outputs"
msgstr ""
-#: templates/js/translated/build.js:1050
+#: templates/js/translated/build.js:1042
msgid "Delete outputs"
msgstr ""
-#: templates/js/translated/build.js:1104
+#: templates/js/translated/build.js:1096
msgid "build output"
msgstr ""
-#: templates/js/translated/build.js:1105
+#: templates/js/translated/build.js:1097
msgid "build outputs"
msgstr ""
-#: templates/js/translated/build.js:1109
+#: templates/js/translated/build.js:1101
msgid "Build output actions"
msgstr ""
-#: templates/js/translated/build.js:1278
+#: templates/js/translated/build.js:1270
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1371
+#: templates/js/translated/build.js:1363
msgid "Allocated Lines"
msgstr ""
-#: templates/js/translated/build.js:1385
+#: templates/js/translated/build.js:1377
msgid "Required Tests"
msgstr ""
-#: templates/js/translated/build.js:1557
+#: templates/js/translated/build.js:1549
#: templates/js/translated/purchase_order.js:627
#: templates/js/translated/sales_order.js:1168
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1558
+#: templates/js/translated/build.js:1550
#: templates/js/translated/sales_order.js:1169
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1621
+#: templates/js/translated/build.js:1613
#: templates/js/translated/sales_order.js:1118
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1698
+#: templates/js/translated/build.js:1690
msgid "All Parts Allocated"
msgstr ""
-#: templates/js/translated/build.js:1699
+#: templates/js/translated/build.js:1691
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:1713
+#: templates/js/translated/build.js:1705
#: templates/js/translated/sales_order.js:1183
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1741
+#: templates/js/translated/build.js:1733
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1752
+#: templates/js/translated/build.js:1744
#: templates/js/translated/sales_order.js:1280
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1817
#: templates/js/translated/sales_order.js:1359
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1922
+#: templates/js/translated/build.js:1914
msgid "Automatic Stock Allocation"
msgstr ""
-#: templates/js/translated/build.js:1923
+#: templates/js/translated/build.js:1915
msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
msgstr ""
-#: templates/js/translated/build.js:1925
+#: templates/js/translated/build.js:1917
msgid "If a location is specified, stock will only be allocated from that location"
msgstr ""
-#: templates/js/translated/build.js:1926
+#: templates/js/translated/build.js:1918
msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
msgstr ""
-#: templates/js/translated/build.js:1927
+#: templates/js/translated/build.js:1919
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:1958
+#: templates/js/translated/build.js:1946
msgid "Allocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:2064
+#: templates/js/translated/build.js:2052
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2099 templates/js/translated/build.js:2464
-#: templates/js/translated/forms.js:2041 templates/js/translated/forms.js:2057
-#: templates/js/translated/part.js:2311 templates/js/translated/part.js:2737
-#: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681
+#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2452
+#: templates/js/translated/part.js:2290 templates/js/translated/part.js:2716
+#: templates/js/translated/stock.js:1915 templates/js/translated/stock.js:2643
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:2113
+#: templates/js/translated/build.js:2101
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:2159
+#: templates/js/translated/build.js:2147
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2195 templates/js/translated/stock.js:3013
+#: templates/js/translated/build.js:2183 templates/js/translated/stock.js:2964
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:2210
+#: templates/js/translated/build.js:2198
msgid "group"
msgstr ""
-#: templates/js/translated/build.js:2371
+#: templates/js/translated/build.js:2359
#: templates/js/translated/sales_order.js:1643
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:2372
+#: templates/js/translated/build.js:2360
#: templates/js/translated/sales_order.js:1644
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:2387
+#: templates/js/translated/build.js:2375
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:2399
+#: templates/js/translated/build.js:2387
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:2440
+#: templates/js/translated/build.js:2428
msgid "build line"
msgstr ""
-#: templates/js/translated/build.js:2441
+#: templates/js/translated/build.js:2429
msgid "build lines"
msgstr ""
-#: templates/js/translated/build.js:2459
+#: templates/js/translated/build.js:2447
msgid "No build lines found"
msgstr ""
-#: templates/js/translated/build.js:2489 templates/js/translated/part.js:787
-#: templates/js/translated/part.js:1199
+#: templates/js/translated/build.js:2477 templates/js/translated/part.js:771
+#: templates/js/translated/part.js:1183
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/build.js:2524
+#: templates/js/translated/build.js:2512
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2573
+#: templates/js/translated/build.js:2561
#: templates/js/translated/sales_order.js:1914
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:2575
+#: templates/js/translated/build.js:2563
#: templates/js/translated/sales_order.js:1912
msgid "Sufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:2622
+#: templates/js/translated/build.js:2610
msgid "Consumable Item"
msgstr ""
-#: templates/js/translated/build.js:2627
+#: templates/js/translated/build.js:2615
msgid "Tracked item"
msgstr ""
-#: templates/js/translated/build.js:2634
+#: templates/js/translated/build.js:2622
#: templates/js/translated/sales_order.js:2013
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:2639 templates/js/translated/stock.js:1836
+#: templates/js/translated/build.js:2627 templates/js/translated/stock.js:1798
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:2643
+#: templates/js/translated/build.js:2631
#: templates/js/translated/sales_order.js:2007
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:2647
+#: templates/js/translated/build.js:2635
msgid "Remove stock allocation"
msgstr ""
@@ -10772,7 +10597,7 @@ msgid "Delete Parameters"
msgstr ""
#: templates/js/translated/company.js:1181
-#: templates/js/translated/company.js:1469 templates/js/translated/part.js:2239
+#: templates/js/translated/company.js:1469 templates/js/translated/part.js:2218
msgid "Order parts"
msgstr ""
@@ -10789,34 +10614,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:1269
-#: templates/js/translated/company.js:1557 templates/js/translated/part.js:795
-#: templates/js/translated/part.js:1207
+#: templates/js/translated/company.js:1557 templates/js/translated/part.js:779
+#: templates/js/translated/part.js:1191
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:1273
-#: templates/js/translated/company.js:1561 templates/js/translated/part.js:799
-#: templates/js/translated/part.js:1211
+#: templates/js/translated/company.js:1561 templates/js/translated/part.js:783
+#: templates/js/translated/part.js:1195
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:1393 templates/js/translated/part.js:1461
+#: templates/js/translated/company.js:1393 templates/js/translated/part.js:1445
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:1428 templates/js/translated/part.js:1524
+#: templates/js/translated/company.js:1428 templates/js/translated/part.js:1508
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:1429 templates/js/translated/part.js:1525
+#: templates/js/translated/company.js:1429 templates/js/translated/part.js:1509
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:1446 templates/js/translated/part.js:1430
+#: templates/js/translated/company.js:1446 templates/js/translated/part.js:1414
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:1455 templates/js/translated/part.js:1546
+#: templates/js/translated/company.js:1455 templates/js/translated/part.js:1530
msgid "Delete Parameter"
msgstr ""
@@ -10912,61 +10737,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:371 templates/js/translated/forms.js:386
-#: templates/js/translated/forms.js:400 templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:373
+#: templates/js/translated/forms.js:371
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:388
+#: templates/js/translated/forms.js:386
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:402
+#: templates/js/translated/forms.js:400
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:416
+#: templates/js/translated/forms.js:414
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:754
+#: templates/js/translated/forms.js:752
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:855
+#: templates/js/translated/forms.js:853
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1403 templates/modals.html:19
+#: templates/js/translated/forms.js:1401 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1857
+#: templates/js/translated/forms.js:1855
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:2161 templates/js/translated/search.js:239
+#: templates/js/translated/forms.js:2071 templates/js/translated/search.js:239
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2375
+#: templates/js/translated/forms.js:2285
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2832
+#: templates/js/translated/forms.js:2742
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2832
+#: templates/js/translated/forms.js:2742
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2844
+#: templates/js/translated/forms.js:2754
msgid "Select Columns"
msgstr ""
@@ -11026,62 +10851,62 @@ msgstr ""
msgid "Labels sent to printer"
msgstr ""
-#: templates/js/translated/modals.js:58 templates/js/translated/modals.js:158
-#: templates/js/translated/modals.js:683
+#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:152
+#: templates/js/translated/modals.js:677
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:63 templates/js/translated/modals.js:157
-#: templates/js/translated/modals.js:751 templates/js/translated/modals.js:1059
+#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:151
+#: templates/js/translated/modals.js:745 templates/js/translated/modals.js:1053
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:156
+#: templates/js/translated/modals.js:150
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:445
+#: templates/js/translated/modals.js:439
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:596
+#: templates/js/translated/modals.js:590
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:682
+#: templates/js/translated/modals.js:676
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:740
+#: templates/js/translated/modals.js:734
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:1011
+#: templates/js/translated/modals.js:1005
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:1011
+#: templates/js/translated/modals.js:1005
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:1023
+#: templates/js/translated/modals.js:1017
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1120
+#: templates/js/translated/modals.js:1114
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1135
+#: templates/js/translated/modals.js:1129
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1136
+#: templates/js/translated/modals.js:1130
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1159
+#: templates/js/translated/modals.js:1153
msgid "Error requesting form data"
msgstr ""
@@ -11091,7 +10916,7 @@ msgstr ""
#: templates/js/translated/news.js:38
#: templates/js/translated/notification.js:46
-#: templates/js/translated/part.js:1601
+#: templates/js/translated/part.js:1585
msgid "ID"
msgstr ""
@@ -11140,7 +10965,7 @@ msgid "Delete Line"
msgstr ""
#: templates/js/translated/order.js:281
-#: templates/js/translated/purchase_order.js:1969
+#: templates/js/translated/purchase_order.js:1965
msgid "No line items found"
msgstr ""
@@ -11172,339 +10997,339 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:305
+#: templates/js/translated/part.js:297
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:329 templates/js/translated/stock.js:175
+#: templates/js/translated/part.js:313 templates/js/translated/stock.js:146
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:349
+#: templates/js/translated/part.js:333
msgid "Create Part Category"
msgstr ""
-#: templates/js/translated/part.js:352
+#: templates/js/translated/part.js:336
msgid "Create new category after this one"
msgstr ""
-#: templates/js/translated/part.js:353
+#: templates/js/translated/part.js:337
msgid "Part category created"
msgstr ""
-#: templates/js/translated/part.js:367
+#: templates/js/translated/part.js:351
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:380
+#: templates/js/translated/part.js:364
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:385
+#: templates/js/translated/part.js:369
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:378
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:398
+#: templates/js/translated/part.js:382
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:403
+#: templates/js/translated/part.js:387
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:427
+#: templates/js/translated/part.js:411
msgid "Create Part"
msgstr ""
-#: templates/js/translated/part.js:429
+#: templates/js/translated/part.js:413
msgid "Create another part after this one"
msgstr ""
-#: templates/js/translated/part.js:430
+#: templates/js/translated/part.js:414
msgid "Part created successfully"
msgstr ""
-#: templates/js/translated/part.js:458
+#: templates/js/translated/part.js:442
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:444
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:471
+#: templates/js/translated/part.js:455
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:512
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:513
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:527
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:545
+#: templates/js/translated/part.js:529
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:546
+#: templates/js/translated/part.js:530
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:531
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:538
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:590
+#: templates/js/translated/part.js:574
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:592
+#: templates/js/translated/part.js:576
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:597
+#: templates/js/translated/part.js:581
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:599
+#: templates/js/translated/part.js:583
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:616
+#: templates/js/translated/part.js:600
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:626
+#: templates/js/translated/part.js:610
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:629
+#: templates/js/translated/part.js:613
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:654
+#: templates/js/translated/part.js:638
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:682
-#: templates/js/translated/table_filters.js:743
+#: templates/js/translated/part.js:666
+#: templates/js/translated/table_filters.js:707
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:685
+#: templates/js/translated/part.js:669
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:745
+#: templates/js/translated/part.js:729
msgid "Demand"
msgstr ""
-#: templates/js/translated/part.js:768
+#: templates/js/translated/part.js:752
msgid "Unit"
msgstr ""
-#: templates/js/translated/part.js:791 templates/js/translated/part.js:1203
+#: templates/js/translated/part.js:775 templates/js/translated/part.js:1187
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:803
+#: templates/js/translated/part.js:787
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:807
+#: templates/js/translated/part.js:791
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:886
+#: templates/js/translated/part.js:870
msgid "Schedule generation of a new stocktake report."
msgstr ""
-#: templates/js/translated/part.js:886
+#: templates/js/translated/part.js:870
msgid "Once complete, the stocktake report will be available for download."
msgstr ""
-#: templates/js/translated/part.js:894
+#: templates/js/translated/part.js:878
msgid "Generate Stocktake Report"
msgstr ""
-#: templates/js/translated/part.js:898
+#: templates/js/translated/part.js:882
msgid "Stocktake report scheduled"
msgstr ""
-#: templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1031
msgid "No stocktake information available"
msgstr ""
-#: templates/js/translated/part.js:1105 templates/js/translated/part.js:1141
+#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1125
msgid "Edit Stocktake Entry"
msgstr ""
-#: templates/js/translated/part.js:1109 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:1093 templates/js/translated/part.js:1135
msgid "Delete Stocktake Entry"
msgstr ""
-#: templates/js/translated/part.js:1278
+#: templates/js/translated/part.js:1262
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1596
+#: templates/js/translated/part.js:1580
msgid "No part parameter templates found"
msgstr ""
-#: templates/js/translated/part.js:1659
+#: templates/js/translated/part.js:1643
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/js/translated/part.js:1671
+#: templates/js/translated/part.js:1655
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1663
msgid "Delete Part Parameter Template"
msgstr ""
-#: templates/js/translated/part.js:1713
-#: templates/js/translated/purchase_order.js:1637
+#: templates/js/translated/part.js:1697
+#: templates/js/translated/purchase_order.js:1633
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/part.js:1856
-#: templates/js/translated/purchase_order.js:2132
-#: templates/js/translated/return_order.js:753
+#: templates/js/translated/part.js:1840
+#: templates/js/translated/purchase_order.js:2128
+#: templates/js/translated/return_order.js:749
#: templates/js/translated/sales_order.js:1872
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/part.js:1901
-#: templates/js/translated/purchase_order.js:2199
+#: templates/js/translated/part.js:1885
+#: templates/js/translated/purchase_order.js:2195
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/part.js:1964
+#: templates/js/translated/part.js:1948
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1986
+#: templates/js/translated/part.js:1970
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:2074 templates/js/translated/part.js:2501
+#: templates/js/translated/part.js:2058 templates/js/translated/part.js:2480
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:2195
+#: templates/js/translated/part.js:2179
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:2200
+#: templates/js/translated/part.js:2184
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:2230
+#: templates/js/translated/part.js:2209
msgid "Set category"
msgstr ""
-#: templates/js/translated/part.js:2283
+#: templates/js/translated/part.js:2262
msgid "parts"
msgstr ""
-#: templates/js/translated/part.js:2379
+#: templates/js/translated/part.js:2358
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:2526 templates/js/translated/part.js:2656
-#: templates/js/translated/stock.js:2640
+#: templates/js/translated/part.js:2505 templates/js/translated/part.js:2635
+#: templates/js/translated/stock.js:2602
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:2542
+#: templates/js/translated/part.js:2521
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:2640
+#: templates/js/translated/part.js:2619
msgid "No subcategories found"
msgstr ""
-#: templates/js/translated/part.js:2676 templates/js/translated/stock.js:2660
+#: templates/js/translated/part.js:2655 templates/js/translated/stock.js:2622
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2756
+#: templates/js/translated/part.js:2735
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2772
+#: templates/js/translated/part.js:2751
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2849
+#: templates/js/translated/part.js:2828
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2900 templates/js/translated/stock.js:1436
+#: templates/js/translated/part.js:2879 templates/js/translated/stock.js:1398
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2901 templates/js/translated/stock.js:1437
-#: templates/js/translated/stock.js:1699
+#: templates/js/translated/part.js:2880 templates/js/translated/stock.js:1399
+#: templates/js/translated/stock.js:1661
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2905
+#: templates/js/translated/part.js:2884
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2921
+#: templates/js/translated/part.js:2900
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2935
+#: templates/js/translated/part.js:2914
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:3014 templates/js/translated/part.js:3015
+#: templates/js/translated/part.js:2993 templates/js/translated/part.js:2994
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:3017
+#: templates/js/translated/part.js:2996
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:3023
+#: templates/js/translated/part.js:3002
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:3073
+#: templates/js/translated/part.js:3052
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:3079
+#: templates/js/translated/part.js:3058
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:3175
+#: templates/js/translated/part.js:3154
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:3191
+#: templates/js/translated/part.js:3170
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:3236
+#: templates/js/translated/part.js:3215
msgid "Minimum Stock Level"
msgstr ""
@@ -11512,47 +11337,51 @@ msgstr ""
msgid "No plugins found"
msgstr ""
-#: templates/js/translated/plugin.js:57
-msgid "This plugin is no longer installed"
-msgstr ""
-
-#: templates/js/translated/plugin.js:59
+#: templates/js/translated/plugin.js:54
msgid "This plugin is active"
msgstr ""
-#: templates/js/translated/plugin.js:61
-msgid "This plugin is installed but not active"
+#: templates/js/translated/plugin.js:56
+msgid "This plugin is not active"
msgstr ""
-#: templates/js/translated/plugin.js:116 templates/js/translated/plugin.js:185
+#: templates/js/translated/plugin.js:62
+msgid "Plugin Description"
+msgstr ""
+
+#: templates/js/translated/plugin.js:81
+msgid "Sample"
+msgstr ""
+
+#: templates/js/translated/plugin.js:117 templates/js/translated/plugin.js:183
msgid "Disable Plugin"
msgstr ""
-#: templates/js/translated/plugin.js:118 templates/js/translated/plugin.js:185
+#: templates/js/translated/plugin.js:119 templates/js/translated/plugin.js:183
msgid "Enable Plugin"
msgstr ""
-#: templates/js/translated/plugin.js:157
+#: templates/js/translated/plugin.js:158
msgid "The Plugin was installed"
msgstr ""
-#: templates/js/translated/plugin.js:176
+#: templates/js/translated/plugin.js:174
msgid "Are you sure you want to enable this plugin?"
msgstr ""
-#: templates/js/translated/plugin.js:180
+#: templates/js/translated/plugin.js:178
msgid "Are you sure you want to disable this plugin?"
msgstr ""
-#: templates/js/translated/plugin.js:188
+#: templates/js/translated/plugin.js:186
msgid "Enable"
msgstr ""
-#: templates/js/translated/plugin.js:188
+#: templates/js/translated/plugin.js:186
msgid "Disable"
msgstr ""
-#: templates/js/translated/plugin.js:202
+#: templates/js/translated/plugin.js:200
msgid "Plugin updated"
msgstr ""
@@ -11749,80 +11578,80 @@ msgstr ""
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/purchase_order.js:1318
-#: templates/js/translated/return_order.js:558
+#: templates/js/translated/purchase_order.js:1314
+#: templates/js/translated/return_order.js:554
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1319
+#: templates/js/translated/purchase_order.js:1315
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1387
+#: templates/js/translated/purchase_order.js:1383
msgid "Scan Item Barcode"
msgstr ""
-#: templates/js/translated/purchase_order.js:1388
+#: templates/js/translated/purchase_order.js:1384
msgid "Scan barcode on incoming item (must not match any existing stock items)"
msgstr ""
-#: templates/js/translated/purchase_order.js:1402
+#: templates/js/translated/purchase_order.js:1398
msgid "Invalid barcode data"
msgstr ""
-#: templates/js/translated/purchase_order.js:1664
+#: templates/js/translated/purchase_order.js:1660
#: templates/js/translated/return_order.js:283
#: templates/js/translated/sales_order.js:771
#: templates/js/translated/sales_order.js:995
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/purchase_order.js:1726
+#: templates/js/translated/purchase_order.js:1722
#: templates/js/translated/return_order.js:351
#: templates/js/translated/sales_order.js:848
#: templates/js/translated/sales_order.js:1008
msgid "Items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1822
+#: templates/js/translated/purchase_order.js:1818
msgid "All selected Line items will be deleted"
msgstr ""
-#: templates/js/translated/purchase_order.js:1840
+#: templates/js/translated/purchase_order.js:1836
msgid "Delete selected Line items?"
msgstr ""
-#: templates/js/translated/purchase_order.js:1895
+#: templates/js/translated/purchase_order.js:1891
#: templates/js/translated/sales_order.js:2067
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:1910
+#: templates/js/translated/purchase_order.js:1906
#: templates/js/translated/return_order.js:473
-#: templates/js/translated/return_order.js:666
+#: templates/js/translated/return_order.js:662
#: templates/js/translated/sales_order.js:2080
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:1921
-#: templates/js/translated/return_order.js:679
+#: templates/js/translated/purchase_order.js:1917
+#: templates/js/translated/return_order.js:675
#: templates/js/translated/sales_order.js:2091
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2203
+#: templates/js/translated/purchase_order.js:2199
#: templates/js/translated/sales_order.js:2021
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2204
-#: templates/js/translated/return_order.js:798
+#: templates/js/translated/purchase_order.js:2200
+#: templates/js/translated/return_order.js:794
#: templates/js/translated/sales_order.js:2022
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2205
-#: templates/js/translated/return_order.js:802
+#: templates/js/translated/purchase_order.js:2201
+#: templates/js/translated/return_order.js:798
#: templates/js/translated/sales_order.js:2028
msgid "Delete line item"
msgstr ""
@@ -11885,16 +11714,16 @@ msgstr ""
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/return_order.js:559
+#: templates/js/translated/return_order.js:555
msgid "Receive Return Order Items"
msgstr ""
-#: templates/js/translated/return_order.js:690
+#: templates/js/translated/return_order.js:686
#: templates/js/translated/sales_order.js:2227
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/return_order.js:795
+#: templates/js/translated/return_order.js:791
msgid "Mark item as received"
msgstr ""
@@ -12037,7 +11866,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:1620
#: templates/js/translated/sales_order.js:1707
-#: templates/js/translated/stock.js:1744
+#: templates/js/translated/stock.js:1706
msgid "Shipped to customer"
msgstr ""
@@ -12099,472 +11928,464 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:98
+#: templates/js/translated/stock.js:97
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:129
+#: templates/js/translated/stock.js:128
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:139
-msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on"
-msgstr ""
-
-#: templates/js/translated/stock.js:152
+#: templates/js/translated/stock.js:137
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:166
-msgid "Add Location type"
-msgstr ""
-
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:172
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:217
+#: templates/js/translated/stock.js:187
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:219
+#: templates/js/translated/stock.js:189
msgid "Create another location after this one"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:190
msgid "Stock location created"
msgstr ""
-#: templates/js/translated/stock.js:234
+#: templates/js/translated/stock.js:204
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:241
+#: templates/js/translated/stock.js:211
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:250
+#: templates/js/translated/stock.js:220
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:254
+#: templates/js/translated/stock.js:224
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:259
+#: templates/js/translated/stock.js:229
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:313
+#: templates/js/translated/stock.js:283
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:349
+#: templates/js/translated/stock.js:319
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: templates/js/translated/stock.js:362
+#: templates/js/translated/stock.js:328
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:334
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:439
+#: templates/js/translated/stock.js:405
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:459
+#: templates/js/translated/stock.js:425
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:475
+#: templates/js/translated/stock.js:441
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:480
+#: templates/js/translated/stock.js:446
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:501
+#: templates/js/translated/stock.js:467
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:543
+#: templates/js/translated/stock.js:509
msgid "Create another item after this one"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:521
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:534
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:593
+#: templates/js/translated/stock.js:559
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:564
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:614
+#: templates/js/translated/stock.js:580
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:634
+#: templates/js/translated/stock.js:600
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:643
+#: templates/js/translated/stock.js:609
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:751
+#: templates/js/translated/stock.js:717
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:752
+#: templates/js/translated/stock.js:718
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:829
+#: templates/js/translated/stock.js:795
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:830
+#: templates/js/translated/stock.js:796
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:832
+#: templates/js/translated/stock.js:798
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:833
+#: templates/js/translated/stock.js:799
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:928
+#: templates/js/translated/stock.js:890
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:929
+#: templates/js/translated/stock.js:891
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1024
+#: templates/js/translated/stock.js:986
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:1025
+#: templates/js/translated/stock.js:987
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:1031
+#: templates/js/translated/stock.js:993
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:1032
+#: templates/js/translated/stock.js:994
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:1036
+#: templates/js/translated/stock.js:998
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:1037
+#: templates/js/translated/stock.js:999
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:1041
+#: templates/js/translated/stock.js:1003
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:1042 users/models.py:253
+#: templates/js/translated/stock.js:1004 users/models.py:252
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1008
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1105
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1105
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3258
+#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:3205
msgid "Select Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1178
+#: templates/js/translated/stock.js:1140
msgid "Select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1224
+#: templates/js/translated/stock.js:1186
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1322
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1362
+#: templates/js/translated/stock.js:1324
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1367
+#: templates/js/translated/stock.js:1329
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1429
+#: templates/js/translated/stock.js:1391
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1394
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/stock.js:1418
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:1482
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1682
+#: templates/js/translated/stock.js:1644
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1704
+#: templates/js/translated/stock.js:1666
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1736
+#: templates/js/translated/stock.js:1698
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1740
+#: templates/js/translated/stock.js:1702
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1748
+#: templates/js/translated/stock.js:1710
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1754
+#: templates/js/translated/stock.js:1716
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1772
msgid "Change stock status"
msgstr ""
-#: templates/js/translated/stock.js:1819
+#: templates/js/translated/stock.js:1781
msgid "Merge stock"
msgstr ""
-#: templates/js/translated/stock.js:1868
+#: templates/js/translated/stock.js:1830
msgid "Delete stock"
msgstr ""
-#: templates/js/translated/stock.js:1923
+#: templates/js/translated/stock.js:1885
msgid "stock items"
msgstr ""
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1890
msgid "Scan to location"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1901
msgid "Stock Actions"
msgstr ""
-#: templates/js/translated/stock.js:1983
+#: templates/js/translated/stock.js:1945
msgid "Load installed items"
msgstr ""
-#: templates/js/translated/stock.js:2061
+#: templates/js/translated/stock.js:2023
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:2066
+#: templates/js/translated/stock.js:2028
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:2069
+#: templates/js/translated/stock.js:2031
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2034
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:2074
+#: templates/js/translated/stock.js:2036
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:2076
+#: templates/js/translated/stock.js:2038
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2041
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2081
+#: templates/js/translated/stock.js:2043
msgid "Stock item has been consumed by a build order"
msgstr ""
-#: templates/js/translated/stock.js:2085
+#: templates/js/translated/stock.js:2047
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:2087
+#: templates/js/translated/stock.js:2049
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:2092
+#: templates/js/translated/stock.js:2054
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2056
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:2096
+#: templates/js/translated/stock.js:2058
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:2100
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/stock.js:2062
+#: templates/js/translated/table_filters.js:326
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:2265
+#: templates/js/translated/stock.js:2227
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2312
+#: templates/js/translated/stock.js:2274
msgid "Stock Value"
msgstr ""
-#: templates/js/translated/stock.js:2440
+#: templates/js/translated/stock.js:2402
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2544
+#: templates/js/translated/stock.js:2506
msgid "stock locations"
msgstr ""
-#: templates/js/translated/stock.js:2699
+#: templates/js/translated/stock.js:2661
msgid "Load Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2768
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2772
msgid "No changes"
msgstr ""
-#: templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:2784
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2855
+#: templates/js/translated/stock.js:2806
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2823
msgid "Build order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2838
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2904
+#: templates/js/translated/stock.js:2855
msgid "Sales Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2921
+#: templates/js/translated/stock.js:2872
msgid "Return Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2940
+#: templates/js/translated/stock.js:2891
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2958
+#: templates/js/translated/stock.js:2909
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2976
+#: templates/js/translated/stock.js:2927
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2984
+#: templates/js/translated/stock.js:2935
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:3056
+#: templates/js/translated/stock.js:3007
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:3106 templates/js/translated/stock.js:3141
+#: templates/js/translated/stock.js:3057 templates/js/translated/stock.js:3092
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3163
+#: templates/js/translated/stock.js:3110
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:3184
+#: templates/js/translated/stock.js:3131
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:3185
+#: templates/js/translated/stock.js:3132
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:3187
+#: templates/js/translated/stock.js:3134
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3188
+#: templates/js/translated/stock.js:3135
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:3189
+#: templates/js/translated/stock.js:3136
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:3190
+#: templates/js/translated/stock.js:3137
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:3203
+#: templates/js/translated/stock.js:3150
msgid "Select part to install"
msgstr ""
-#: templates/js/translated/stock.js:3259
+#: templates/js/translated/stock.js:3206
msgid "Select one or more stock items"
msgstr ""
-#: templates/js/translated/stock.js:3272
+#: templates/js/translated/stock.js:3219
msgid "Selected stock items"
msgstr ""
-#: templates/js/translated/stock.js:3276
+#: templates/js/translated/stock.js:3223
msgid "Change Stock Status"
msgstr ""
@@ -12573,23 +12394,23 @@ msgid "Has project code"
msgstr ""
#: templates/js/translated/table_filters.js:89
-#: templates/js/translated/table_filters.js:601
-#: templates/js/translated/table_filters.js:613
-#: templates/js/translated/table_filters.js:654
+#: templates/js/translated/table_filters.js:565
+#: templates/js/translated/table_filters.js:577
+#: templates/js/translated/table_filters.js:618
msgid "Order status"
msgstr ""
#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:618
-#: templates/js/translated/table_filters.js:644
-#: templates/js/translated/table_filters.js:659
+#: templates/js/translated/table_filters.js:582
+#: templates/js/translated/table_filters.js:608
+#: templates/js/translated/table_filters.js:623
msgid "Outstanding"
msgstr ""
#: templates/js/translated/table_filters.js:102
-#: templates/js/translated/table_filters.js:524
-#: templates/js/translated/table_filters.js:626
-#: templates/js/translated/table_filters.js:667
+#: templates/js/translated/table_filters.js:488
+#: templates/js/translated/table_filters.js:590
+#: templates/js/translated/table_filters.js:631
msgid "Assigned to me"
msgstr ""
@@ -12610,12 +12431,12 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:775
+#: templates/js/translated/table_filters.js:739
msgid "Has Pricing"
msgstr ""
#: templates/js/translated/table_filters.js:234
-#: templates/js/translated/table_filters.js:345
+#: templates/js/translated/table_filters.js:321
msgid "Include sublocations"
msgstr ""
@@ -12623,210 +12444,210 @@ msgstr ""
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:267
-msgid "Has location type"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:278
-#: templates/js/translated/table_filters.js:279
-#: templates/js/translated/table_filters.js:707
+#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:255
+#: templates/js/translated/table_filters.js:671
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:755
+#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:719
msgid "Subscribed"
msgstr ""
-#: templates/js/translated/table_filters.js:298
-#: templates/js/translated/table_filters.js:380
+#: templates/js/translated/table_filters.js:274
+#: templates/js/translated/table_filters.js:356
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:301
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:277
+#: templates/js/translated/table_filters.js:363
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:302
-#: templates/js/translated/table_filters.js:388
+#: templates/js/translated/table_filters.js:278
+#: templates/js/translated/table_filters.js:364
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:305
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:281
+#: templates/js/translated/table_filters.js:367
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:306
-#: templates/js/translated/table_filters.js:392
+#: templates/js/translated/table_filters.js:282
+#: templates/js/translated/table_filters.js:368
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:309
-#: templates/js/translated/table_filters.js:310
-#: templates/js/translated/table_filters.js:383
-#: templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:286
+#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:360
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:314
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:381
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:325
-#: templates/js/translated/table_filters.js:696
+#: templates/js/translated/table_filters.js:301
+#: templates/js/translated/table_filters.js:660
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:302
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:307
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:311
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:312
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:317
msgid "Stock is available for use"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:322
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:351
+#: templates/js/translated/table_filters.js:327
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:356
+#: templates/js/translated/table_filters.js:332
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:360
+#: templates/js/translated/table_filters.js:336
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:361
+#: templates/js/translated/table_filters.js:337
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:365
+#: templates/js/translated/table_filters.js:341
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:366
+#: templates/js/translated/table_filters.js:342
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:346
+msgid "Installed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:347
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:376
+#: templates/js/translated/table_filters.js:352
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:396
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:372
+#: templates/js/translated/table_filters.js:373
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:400
+#: templates/js/translated/table_filters.js:376
msgid "Has batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:409
+#: templates/js/translated/table_filters.js:385
msgid "Stock item is tracked by either batch code or serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:414
+#: templates/js/translated/table_filters.js:390
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:415
+#: templates/js/translated/table_filters.js:391
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:419
+#: templates/js/translated/table_filters.js:395
msgid "Expiry Date before"
msgstr ""
-#: templates/js/translated/table_filters.js:423
+#: templates/js/translated/table_filters.js:399
msgid "Expiry Date after"
msgstr ""
-#: templates/js/translated/table_filters.js:436
+#: templates/js/translated/table_filters.js:412
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:442
+#: templates/js/translated/table_filters.js:418
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:456
+#: templates/js/translated/table_filters.js:432
msgid "Test Passed"
msgstr ""
-#: templates/js/translated/table_filters.js:460
+#: templates/js/translated/table_filters.js:436
msgid "Include Installed Items"
msgstr ""
-#: templates/js/translated/table_filters.js:511
+#: templates/js/translated/table_filters.js:475
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:708
+#: templates/js/translated/table_filters.js:672
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:713
+#: templates/js/translated/table_filters.js:677
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:721
+#: templates/js/translated/table_filters.js:685
msgid "Available stock"
msgstr ""
-#: templates/js/translated/table_filters.js:729
-#: templates/js/translated/table_filters.js:825
+#: templates/js/translated/table_filters.js:693
+#: templates/js/translated/table_filters.js:789
msgid "Has Units"
msgstr ""
-#: templates/js/translated/table_filters.js:730
+#: templates/js/translated/table_filters.js:694
msgid "Part has defined units"
msgstr ""
-#: templates/js/translated/table_filters.js:734
+#: templates/js/translated/table_filters.js:698
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:735
+#: templates/js/translated/table_filters.js:699
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:739
+#: templates/js/translated/table_filters.js:703
msgid "In stock"
msgstr ""
-#: templates/js/translated/table_filters.js:747
+#: templates/js/translated/table_filters.js:711
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/table_filters.js:759
+#: templates/js/translated/table_filters.js:723
msgid "Has stocktake entries"
msgstr ""
-#: templates/js/translated/table_filters.js:821
+#: templates/js/translated/table_filters.js:785
msgid "Has Choices"
msgstr ""
@@ -13117,34 +12938,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:240
+#: users/models.py:239
msgid "Permission set"
msgstr ""
-#: users/models.py:248
+#: users/models.py:247
msgid "Group"
msgstr ""
-#: users/models.py:251
+#: users/models.py:250
msgid "View"
msgstr ""
-#: users/models.py:251
+#: users/models.py:250
msgid "Permission to view items"
msgstr ""
-#: users/models.py:253
+#: users/models.py:252
msgid "Permission to add items"
msgstr ""
-#: users/models.py:255
+#: users/models.py:254
msgid "Change"
msgstr ""
-#: users/models.py:255
+#: users/models.py:254
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:257
+#: users/models.py:256
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po
index c73a5bd50a..5dc3b2c643 100644
--- a/InvenTree/locale/fa/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fa/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:28\n"
+"POT-Creation-Date: 2023-10-09 02:27+0000\n"
+"PO-Revision-Date: 2023-10-09 10:39\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Language: fa_IR\n"
@@ -17,69 +17,64 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "Address e API peida nashod"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "جزئیات خطا را می توان در پنل مدیریت پیدا کرد"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "تاریخ را وارد کنید"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:121 stock/models.py:2191 stock/models.py:2299
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1000 stock/serializers.py:1099
+#: stock/serializers.py:1260 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
#: templates/js/translated/return_order.js:773
#: templates/js/translated/sales_order.js:1064
#: templates/js/translated/sales_order.js:1979
-#: templates/js/translated/stock.js:1516 templates/js/translated/stock.js:2398
+#: templates/js/translated/stock.js:1490 templates/js/translated/stock.js:2372
msgid "Notes"
msgstr "یادداشت"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "مقدار '{name}' در قالب الگو ظاهر قرار نمی گیرد"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "مقدار ارائه شده با الگوی مورد نیاز مطابقت ندارد: "
@@ -103,99 +98,99 @@ msgstr "گذرواژه جدید را تایید کنید"
msgid "Old password"
msgstr "رمز عبور قدیمی"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "ایمیل (دوباره وارد کنید)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "تایید آدرس ایمیل"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "هر بار باید همان ایمیل را تایپ کنید."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "آدرس ایمیل اصلی ارائه شده معتبر نیست."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "دامنه ایمیل ارائه شده تایید نشده است."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "خطا در اتصال"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "سرور با کد وضعیت نامعتبر پاسخ داد"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "یک استثنا رخ داده است"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "سرور با مقدار طول محتوا نامعتبر پاسخ داد"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "اندازه عکس بسیار بزرگ است"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -211,67 +206,67 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2293
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2858 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: stock/admin.py:138 templates/js/translated/company.js:1309
+#: stock/admin.py:120 templates/js/translated/company.js:1309
#: templates/js/translated/company.js:1663 templates/js/translated/order.js:351
#: templates/js/translated/part.js:2451
#: templates/js/translated/purchase_order.js:2019
@@ -282,104 +277,101 @@ msgstr ""
msgid "Link"
msgstr ""
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:735
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2317
+#: common/models.py:2318 common/models.py:2531 common/models.py:2532
+#: common/models.py:2788 common/models.py:2789 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
-#: templates/js/translated/stock.js:3007
+#: templates/js/translated/stock.js:2970
msgid "User"
msgstr ""
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
-#: templates/InvenTree/settings/mixins/urls.html:13
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2517
+#: common/models.py:2965 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
#: templates/InvenTree/settings/plugin_settings.html:22
#: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
#: templates/js/translated/company.js:666
#: templates/js/translated/company.js:714
#: templates/js/translated/company.js:903
#: templates/js/translated/company.js:1155
#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1183
#: templates/js/translated/part.js:1471 templates/js/translated/part.js:1607
-#: templates/js/translated/part.js:2744 templates/js/translated/stock.js:2687
+#: templates/js/translated/part.js:2744 templates/js/translated/stock.js:2661
msgid "Name"
msgstr ""
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
-#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
+#: stock/admin.py:41 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:27
#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
#: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
#: templates/js/translated/build.js:2121 templates/js/translated/company.js:518
#: templates/js/translated/company.js:1320
@@ -395,68 +387,68 @@ msgstr ""
#: templates/js/translated/return_order.js:311
#: templates/js/translated/sales_order.js:799
#: templates/js/translated/sales_order.js:1809
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:2028
-#: templates/js/translated/stock.js:2719 templates/js/translated/stock.js:2802
+#: templates/js/translated/stock.js:1469 templates/js/translated/stock.js:2002
+#: templates/js/translated/stock.js:2693 templates/js/translated/stock.js:2765
msgid "Description"
msgstr ""
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr ""
-#: InvenTree/models.py:672 InvenTree/models.py:673
-#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
+#: InvenTree/models.py:688 InvenTree/models.py:689
+#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2702
msgid "Path"
msgstr ""
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
@@ -510,16 +502,16 @@ msgstr "ستون مورد نیاز وجود ندارد: \"{name}\""
msgid "Duplicate column: '{col}'"
msgstr "ستون تکراری: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:713
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "آدرس اینترنتی"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:714
msgid "URL of remote image file"
msgstr "آدرس فایل تصویری از راه دور"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:728
msgid "Downloading images from remote URL is not enabled"
msgstr ""
@@ -639,7 +631,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr ""
@@ -654,7 +646,7 @@ msgstr ""
#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40
#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167
#: InvenTree/status_codes.py:188 generic/states/tests.py:16
-#: templates/js/translated/table_filters.js:594
+#: templates/js/translated/table_filters.js:570
msgid "Pending"
msgstr ""
@@ -688,7 +680,7 @@ msgstr ""
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -723,7 +715,7 @@ msgstr ""
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544
+#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:518
msgid "Stock item created"
msgstr ""
@@ -779,7 +771,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1826
+#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1800
msgid "Merged stock items"
msgstr ""
@@ -799,7 +791,7 @@ msgstr ""
msgid "Build order output rejected"
msgstr ""
-#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1732
+#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1706
msgid "Consumed by build order"
msgstr ""
@@ -815,7 +807,7 @@ msgstr ""
msgid "Returned against Return Order"
msgstr ""
-#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375
+#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:351
msgid "Sent to customer"
msgstr ""
@@ -847,93 +839,93 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr ""
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr ""
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
-#: templates/js/translated/table_filters.js:579
+#: templates/js/translated/table_filters.js:555
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
#: templates/js/translated/table_filters.js:215
-#: templates/js/translated/table_filters.js:583
+#: templates/js/translated/table_filters.js:559
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
-#: templates/js/translated/table_filters.js:575
+#: build/api.py:289 templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:551
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
-#: templates/js/translated/table_filters.js:567
+#: templates/js/translated/table_filters.js:543
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
-#: templates/js/translated/model_renderers.js:226
+#: templates/js/translated/model_renderers.js:223
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
#: templates/js/translated/part.js:696
-#: templates/js/translated/table_filters.js:340
-#: templates/js/translated/table_filters.js:571
+#: templates/js/translated/table_filters.js:316
+#: templates/js/translated/table_filters.js:547
msgid "Available"
msgstr ""
@@ -942,7 +934,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:105
#: templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
-#: templates/js/translated/build.js:961 templates/js/translated/stock.js:2863
+#: templates/js/translated/build.js:961 templates/js/translated/stock.js:2826
msgid "Build Order"
msgstr ""
@@ -965,9 +957,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +987,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1004,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1038,10 +1030,10 @@ msgstr ""
#: templates/js/translated/sales_order.js:1194
#: templates/js/translated/sales_order.js:1595
#: templates/js/translated/sales_order.js:1793
-#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842
-#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1967
-#: templates/js/translated/stock.js:2828 templates/js/translated/stock.js:3061
-#: templates/js/translated/stock.js:3202
+#: templates/js/translated/stock.js:650 templates/js/translated/stock.js:816
+#: templates/js/translated/stock.js:1032 templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:2791 templates/js/translated/stock.js:3024
+#: templates/js/translated/stock.js:3165
msgid "Part"
msgstr ""
@@ -1057,7 +1049,7 @@ msgstr "مرجع سفارش فروش"
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1091,17 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:739 stock/serializers.py:1224
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1116,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr ""
@@ -1142,16 +1134,16 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
#: templates/js/translated/purchase_order.js:1742
#: templates/js/translated/return_order.js:356
-#: templates/js/translated/table_filters.js:527
+#: templates/js/translated/table_filters.js:503
msgid "Responsible"
msgstr ""
@@ -1165,7 +1157,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:733
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1171,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1186,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:593 stock/models.py:1387 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2339
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1237,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:103 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1255,7 +1247,7 @@ msgstr ""
#: templates/js/translated/build.js:726 templates/js/translated/build.js:1350
#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2339
#: templates/js/translated/company.js:1808
-#: templates/js/translated/model_renderers.js:228
+#: templates/js/translated/model_renderers.js:225
#: templates/js/translated/order.js:304 templates/js/translated/part.js:958
#: templates/js/translated/part.js:1808 templates/js/translated/part.js:3305
#: templates/js/translated/pricing.js:381
@@ -1271,44 +1263,44 @@ msgstr ""
#: templates/js/translated/sales_order.js:1605
#: templates/js/translated/sales_order.js:1695
#: templates/js/translated/sales_order.js:1821
-#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702
-#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:2992
-#: templates/js/translated/stock.js:3073
+#: templates/js/translated/stock.js:538 templates/js/translated/stock.js:676
+#: templates/js/translated/stock.js:847 templates/js/translated/stock.js:2955
+#: templates/js/translated/stock.js:3036
msgid "Quantity"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:931
+#: stock/serializers.py:1057 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1318,90 +1310,90 @@ msgstr ""
#: templates/js/translated/sales_order.js:1501
#: templates/js/translated/sales_order.js:1602
#: templates/js/translated/sales_order.js:1689
-#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843
-#: templates/js/translated/stock.js:2948
+#: templates/js/translated/stock.js:651 templates/js/translated/stock.js:817
+#: templates/js/translated/stock.js:2911
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
-#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
+#: templates/js/translated/stock.js:341 templates/js/translated/stock.js:539
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:736
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1092 stock/serializers.py:1363
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1412,209 +1404,213 @@ msgstr ""
#: templates/js/translated/sales_order.js:1616
#: templates/js/translated/sales_order.js:1624
#: templates/js/translated/sales_order.js:1703
-#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844
-#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2171
-#: templates/js/translated/stock.js:2842
+#: templates/js/translated/stock.js:652 templates/js/translated/stock.js:818
+#: templates/js/translated/stock.js:1034 templates/js/translated/stock.js:2145
+#: templates/js/translated/stock.js:2805
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:106
+#: stock/serializers.py:703 stock/serializers.py:1231
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
#: templates/js/translated/purchase_order.js:1701
#: templates/js/translated/return_order.js:328
#: templates/js/translated/sales_order.js:816
-#: templates/js/translated/stock.js:2146 templates/js/translated/stock.js:2966
-#: templates/js/translated/stock.js:3089
+#: templates/js/translated/stock.js:2120 templates/js/translated/stock.js:2929
+#: templates/js/translated/stock.js:3052
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:944
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1727,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1757,9 +1753,9 @@ msgstr ""
#: order/templates/order/return_order_base.html:118
#: order/templates/order/sales_order_base.html:123
#: templates/js/translated/table_filters.js:98
-#: templates/js/translated/table_filters.js:520
-#: templates/js/translated/table_filters.js:622
-#: templates/js/translated/table_filters.js:663
+#: templates/js/translated/table_filters.js:496
+#: templates/js/translated/table_filters.js:598
+#: templates/js/translated/table_filters.js:639
msgid "Overdue"
msgstr ""
@@ -1769,8 +1765,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1780,7 +1776,7 @@ msgstr ""
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:766
#: templates/js/translated/sales_order.js:989
-#: templates/js/translated/stock.js:2895
+#: templates/js/translated/stock.js:2858
msgid "Sales Order"
msgstr ""
@@ -1820,7 +1816,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -1833,15 +1829,15 @@ msgstr ""
msgid "Allocated Parts"
msgstr ""
-#: build/templates/build/detail.html:80 stock/admin.py:123
+#: build/templates/build/detail.html:80 stock/admin.py:105
#: stock/templates/stock/item_base.html:163
#: templates/js/translated/build.js:1361
-#: templates/js/translated/model_renderers.js:233
+#: templates/js/translated/model_renderers.js:230
#: templates/js/translated/purchase_order.js:1259
-#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2160
-#: templates/js/translated/stock.js:3096
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:404
+#: templates/js/translated/stock.js:1104 templates/js/translated/stock.js:2134
+#: templates/js/translated/stock.js:3059
+#: templates/js/translated/table_filters.js:289
+#: templates/js/translated/table_filters.js:380
msgid "Batch"
msgstr ""
@@ -1859,7 +1855,7 @@ msgstr ""
#: build/templates/build/detail.html:149
#: order/templates/order/sales_order_base.html:203
-#: templates/js/translated/table_filters.js:685
+#: templates/js/translated/table_filters.js:661
msgid "Completed"
msgstr ""
@@ -2014,35 +2010,35 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:638
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:640
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:681
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:698
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:709
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:748
msgid "Key string must be unique"
msgstr ""
@@ -2059,1430 +2055,1430 @@ msgstr ""
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:995
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1063
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1064
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1071
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1072
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1078
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1080
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1085
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1086
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1092
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1093
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1099 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1100
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1105
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1106
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1113
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1114
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1121
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1122
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1124 common/models.py:1188 common/models.py:1206
+#: common/models.py:1213 common/models.py:1224 common/models.py:1235
+#: common/models.py:1466 common/models.py:1490 common/models.py:1609
+#: common/models.py:1865
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1132
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1133
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1139
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1140
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1146
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1147
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1158
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1159
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1164
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1165
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1171
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1172
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1181
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1182
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1192
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1193
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1199
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1200
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1210
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1211
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1221
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1222
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1232
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1233
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1243 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
-msgid "Enable barcode scanner support in the web interface"
+#: common/models.py:1244
+msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1250
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1251
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1261
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1262
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1268
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1269
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1275
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1276
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1280
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1281
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1287
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1288
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1294
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1295
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1301
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1302
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1308
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1309
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1315
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1316
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:763
+#: common/models.py:1322 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:739
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1323
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
-#: templates/js/translated/table_filters.js:330
-#: templates/js/translated/table_filters.js:717
+#: common/models.py:1329 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
+#: templates/js/translated/table_filters.js:306
+#: templates/js/translated/table_filters.js:693
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1330
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
-#: templates/js/translated/table_filters.js:725
+#: common/models.py:1336 part/admin.py:52 part/models.py:1007
+#: templates/js/translated/table_filters.js:701
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1337
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1343 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1344
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
-#: templates/js/translated/table_filters.js:751
+#: common/models.py:1350 part/admin.py:54 part/models.py:1023
+#: templates/js/translated/table_filters.js:727
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1351
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1357 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:767
+#: templates/js/translated/table_filters.js:743
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1358
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1364 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:771
+#: templates/js/translated/table_filters.js:747
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1365
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1371
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1372
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1378
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1379
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1385
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1386
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1392 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1393
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1399
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1400
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1407
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1408
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1413
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1414
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1420
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1421
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1431
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1432
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1442
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1443
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1449
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1450
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1456
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1457
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1463
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1464
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1474
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1475
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1481
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1482
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1488
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1489
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1499
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1500
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1506
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1507
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1513
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1514
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1520
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1521
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1530
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1531
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1537 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1538
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1544 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1545
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1551
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1552
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1558
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1559
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1565
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1566
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1572
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1573
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1579
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1580
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1586
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1587
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1592
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1593
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1599
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1600
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1606
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1607
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1614
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1615
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1621
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1622
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1628
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1629
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1634
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1635
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1641
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1642
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1648
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1649
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1655
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1656
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1662
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1663
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1669
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1670
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1676
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1677
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1683
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1684
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1690
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1691
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1697
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1698
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1705
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1706
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1712
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1713
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1719
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1720
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1726
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1727
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1733
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1734
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1740
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1741
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1747
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1748
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1754
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1755
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1761
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1762
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1768
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1769
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1775
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1776
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1782
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1783
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1791
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1792
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1799
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1800
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1807
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1808
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1815
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1816
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1823
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1824
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1831
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1832
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1838
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1839
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1845
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1846
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1852
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1853
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1862
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1863
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1880 common/models.py:2310
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1921
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1922
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1928
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1929
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1935
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1936
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1942
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1943
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1949
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1950
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1956
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1957
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1963
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1964
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1970
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1971
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1977
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1978
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1984
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1985
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1991
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:1992
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:1998
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:1999
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2005
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2006
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2012
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2013
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2019
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2020
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2026
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2027
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2033
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2034
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2040
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2041
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2047
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2048
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2054
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2055
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2061
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2062
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2068
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2069
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2075
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2076
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2082
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2083
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2089
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2090
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2096
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2097
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2103
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2104
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2110
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2111
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2117
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2118
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2124
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2125
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2131
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2132
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2138
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2139
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2145
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2146
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2152
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2153
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2159
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2160
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2166
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2167
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2173
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2174
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2180
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2181
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2187
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2188
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2194
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2195
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2201
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2202
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2215
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2216
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2222
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2223
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2229
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2230
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2244 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2245
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2251 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2252
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2258
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2259
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2268
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2269
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2277
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2278
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2286
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2287
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2295
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2296
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2340
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2347 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2348
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2508 common/models.py:2686
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2509
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2518
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2523 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
-#: templates/js/translated/table_filters.js:488
-#: templates/js/translated/table_filters.js:516
-#: templates/js/translated/table_filters.js:712
+#: templates/js/translated/table_filters.js:464
+#: templates/js/translated/table_filters.js:492
+#: templates/js/translated/table_filters.js:688
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2524
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2538
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2539
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2546
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2547
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2653
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2654
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2662
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2663
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2670
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2671
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2677
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2678
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2687
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2692
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2693
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2847
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2853 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2863 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2868 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2873 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2878
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2879
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2899 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3488,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2900
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2944
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2966
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2973
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2980
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3568,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3610,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,128 +3652,128 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:675
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
#: templates/js/translated/company.js:1286
#: templates/js/translated/company.js:1601
-#: templates/js/translated/table_filters.js:792
+#: templates/js/translated/table_filters.js:768
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,87 +3783,85 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2286 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
-#: templates/js/translated/stock.js:1502
+#: templates/js/translated/stock.js:1476
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1765
#: templates/js/translated/pricing.js:498
#: templates/js/translated/purchase_order.js:1672
-#: templates/js/translated/table_filters.js:796
+#: templates/js/translated/table_filters.js:772
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3869,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:119 stock/models.py:701 stock/serializers.py:1239
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
-#: templates/js/translated/stock.js:2394
+#: templates/js/translated/stock.js:2368
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3926,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,17 +4008,17 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:720
+#: stock/models.py:721 stock/serializers.py:986
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
#: templates/js/translated/return_order.js:293
#: templates/js/translated/sales_order.js:781
-#: templates/js/translated/stock.js:2930
-#: templates/js/translated/table_filters.js:800
+#: templates/js/translated/stock.js:2893
+#: templates/js/translated/table_filters.js:776
msgid "Customer"
msgstr ""
@@ -4032,7 +4026,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4190,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4221,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,11 +4271,11 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:684
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
-#: templates/js/translated/stock.js:2250
+#: templates/js/translated/stock.js:2224
msgid "Supplier Part"
msgstr ""
@@ -4337,7 +4331,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:211
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:199
-#: templates/js/translated/stock.js:537
+#: templates/js/translated/stock.js:511
msgid "New Stock Item"
msgstr ""
@@ -4367,15 +4361,15 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
-#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: part/templates/part/category_sidebar.html:17 stock/admin.py:47
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1057
-#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737
+#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2711
#: users/models.py:41
msgid "Stock Items"
msgstr ""
@@ -4384,28 +4378,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4419,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4443,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4457,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4475,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4484,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4504,550 +4498,550 @@ msgstr ""
#: templates/js/translated/purchase_order.js:165
#: templates/js/translated/purchase_order.js:759
#: templates/js/translated/purchase_order.js:1656
-#: templates/js/translated/stock.js:2230 templates/js/translated/stock.js:2878
+#: templates/js/translated/stock.js:2204 templates/js/translated/stock.js:2841
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
#: templates/js/translated/return_order.js:278
-#: templates/js/translated/stock.js:2912
+#: templates/js/translated/stock.js:2875
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
#: templates/js/translated/return_order.js:761
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:598
+#: templates/js/translated/table_filters.js:574
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:823 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
-#: templates/js/translated/stock.js:2281
+#: templates/js/translated/stock.js:2255
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:433
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5220,7 +5214,7 @@ msgstr ""
#: templates/js/translated/purchase_order.js:1221
#: templates/js/translated/return_order.js:503
#: templates/js/translated/sales_order.js:1106
-#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:688 templates/js/translated/stock.js:857
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -5404,7 +5398,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5428,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
-#: stock/admin.py:119
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
+#: stock/admin.py:101
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
-#: stock/admin.py:120
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
+#: stock/admin.py:102
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
-#: templates/js/translated/stock.js:2006
+#: templates/js/translated/stock.js:1980
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,22 +5476,22 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
#: part/admin.py:61 part/templates/part/part_base.html:199
#: templates/js/translated/company.js:1679
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:331
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5507,33 +5501,33 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:142
+#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:124
#: templates/js/translated/part.js:711 templates/js/translated/part.js:2147
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:42 stock/admin.py:116
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:43
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5538,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5610,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5631,9 +5625,9 @@ msgstr ""
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:134 stock/models.py:187 templates/js/translated/stock.js:2743
+#: part/models.py:134 stock/models.py:124 templates/js/translated/stock.js:2717
#: templates/js/translated/table_filters.js:239
-#: templates/js/translated/table_filters.js:283
+#: templates/js/translated/table_filters.js:259
msgid "Structural"
msgstr ""
@@ -5649,12 +5643,11 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:145 stock/models.py:85 stock/models.py:175
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: part/models.py:145 stock/models.py:113
msgid "Icon"
msgstr ""
-#: part/models.py:146 stock/models.py:176
+#: part/models.py:146 stock/models.py:114
msgid "Icon (optional)"
msgstr ""
@@ -5662,62 +5655,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,652 +5718,652 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
+#: templates/InvenTree/settings/settings_staff_js.html:444
#: templates/js/translated/part.js:1082 templates/js/translated/pricing.js:826
#: templates/js/translated/pricing.js:950
#: templates/js/translated/purchase_order.js:1710
-#: templates/js/translated/stock.js:2792
+#: templates/js/translated/stock.js:2755
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:433
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:440
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
-#: templates/js/translated/table_filters.js:477
+#: part/models.py:3348 templates/js/translated/part.js:2872
+#: templates/js/translated/table_filters.js:453
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
-#: templates/js/translated/table_filters.js:817
+#: part/models.py:3484 templates/js/translated/part.js:1624
+#: templates/js/translated/table_filters.js:793
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:577
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6371,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6701,9 +6694,9 @@ msgid "Add stocktake information"
msgstr ""
#: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50
-#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30
+#: stock/admin.py:130 templates/InvenTree/settings/part_stocktake.html:30
#: templates/InvenTree/settings/sidebar.html:53
-#: templates/js/translated/stock.js:2186 users/models.py:39
+#: templates/js/translated/stock.js:2160 users/models.py:39
msgid "Stocktake"
msgstr ""
@@ -6777,7 +6770,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6937,7 +6930,7 @@ msgstr ""
#: part/templates/part/part_base.html:148
#: templates/js/translated/company.js:1277
#: templates/js/translated/company.js:1565
-#: templates/js/translated/model_renderers.js:304
+#: templates/js/translated/model_renderers.js:291
#: templates/js/translated/part.js:811 templates/js/translated/part.js:1215
msgid "Inactive"
msgstr ""
@@ -6961,7 +6954,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7068,8 +7061,8 @@ msgstr ""
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/part.js:1239 templates/js/translated/part.js:2140
-#: templates/js/translated/part.js:2387 templates/js/translated/stock.js:1059
-#: templates/js/translated/stock.js:2040 templates/navbar.html:31
+#: templates/js/translated/part.js:2387 templates/js/translated/stock.js:1033
+#: templates/js/translated/stock.js:2014 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -7098,11 +7091,11 @@ msgstr ""
msgid "Refresh Part Pricing"
msgstr ""
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:25 stock/admin.py:129
#: stock/templates/stock/item_base.html:447
#: templates/js/translated/company.js:1693
#: templates/js/translated/company.js:1703
-#: templates/js/translated/stock.js:2216
+#: templates/js/translated/stock.js:2190
msgid "Last Updated"
msgstr ""
@@ -7219,11 +7212,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7254,19 @@ msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است"
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7275,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7291,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7328,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7356,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7397,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
-#: templates/js/translated/table_filters.js:500
+#: plugin/models.py:130 templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:476
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7510,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7543,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,16 +7684,16 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:725 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
-#: templates/js/translated/model_renderers.js:222
+#: templates/js/translated/model_renderers.js:219
#: templates/js/translated/return_order.js:537
#: templates/js/translated/return_order.js:721
#: templates/js/translated/sales_order.js:312
#: templates/js/translated/sales_order.js:1608
#: templates/js/translated/sales_order.js:1693
-#: templates/js/translated/stock.js:596
+#: templates/js/translated/stock.js:570
msgid "Serial Number"
msgstr ""
@@ -7818,12 +7710,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2274 templates/js/translated/stock.js:1449
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2280
msgid "Result"
msgstr ""
@@ -7849,377 +7741,356 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:168
-#: stock/admin.py:122 templates/js/translated/stock.js:700
-#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3079
+#: stock/admin.py:104 templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:845 templates/js/translated/stock.js:3042
msgid "Serial"
msgstr ""
-#: stock/admin.py:40 stock/admin.py:126
+#: stock/admin.py:39 stock/admin.py:108
msgid "Location ID"
msgstr ""
-#: stock/admin.py:41 stock/admin.py:127
+#: stock/admin.py:40 stock/admin.py:109
msgid "Location Name"
msgstr ""
-#: stock/admin.py:45 stock/templates/stock/location.html:130
+#: stock/admin.py:44 stock/templates/stock/location.html:130
#: stock/templates/stock/location.html:136
msgid "Location Path"
msgstr ""
-#: stock/admin.py:118
+#: stock/admin.py:100
msgid "Stock Item ID"
msgstr ""
-#: stock/admin.py:125
+#: stock/admin.py:107
msgid "Status Code"
msgstr ""
-#: stock/admin.py:128
+#: stock/admin.py:110
msgid "Supplier Part ID"
msgstr ""
-#: stock/admin.py:129
+#: stock/admin.py:111
msgid "Supplier ID"
msgstr ""
-#: stock/admin.py:130
+#: stock/admin.py:112
msgid "Supplier Name"
msgstr ""
-#: stock/admin.py:131
+#: stock/admin.py:113
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:114 stock/models.py:708
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
-#: stock/admin.py:133
+#: stock/admin.py:115
msgid "Build ID"
msgstr ""
-#: stock/admin.py:135
+#: stock/admin.py:117
msgid "Sales Order ID"
msgstr ""
-#: stock/admin.py:136
+#: stock/admin.py:118
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:143
+#: stock/admin.py:125
msgid "Review Needed"
msgstr ""
-#: stock/admin.py:144
+#: stock/admin.py:126
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:131 stock/models.py:789
#: stock/templates/stock/item_base.html:434
-#: templates/js/translated/stock.js:2200
+#: templates/js/translated/stock.js:2174
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:434 templates/js/translated/table_filters.js:403
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:641
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:648
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:676
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:685
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:708
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:56
-msgid "Stock Location type"
-msgstr ""
-
-#: stock/models.py:57
-msgid "Stock Location types"
-msgstr ""
-
-#: stock/models.py:86
-msgid "Default icon for all locations that have no icon set (optional)"
-msgstr ""
-
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:54 stock/models.py:692
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:117 stock/templates/stock/location.html:178
+#: stock/models.py:55 stock/templates/stock/location.html:178
#: templates/InvenTree/search.html:166 templates/js/translated/search.js:178
#: users/models.py:40
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:118 stock/models.py:828
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:119 stock/models.py:829
msgid "Select Owner"
msgstr ""
-#: stock/models.py:189
+#: stock/models.py:126
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:195 templates/js/translated/stock.js:2752
+#: stock/models.py:132 templates/js/translated/stock.js:2726
#: templates/js/translated/table_filters.js:243
msgid "External"
msgstr ""
-#: stock/models.py:196
+#: stock/models.py:133
msgid "This is an external stock location"
msgstr ""
-#: stock/models.py:202 templates/js/translated/stock.js:2761
-#: templates/js/translated/table_filters.js:246
-msgid "Location type"
-msgstr ""
-
-#: stock/models.py:205
-msgid "Stock location type of this location"
-msgstr ""
-
-#: stock/models.py:270
+#: stock/models.py:175
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:557
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:583 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:600
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:610 stock/models.py:619
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:611
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:633
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:639
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:653
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:667
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:677
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:685
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:695
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:702 stock/serializers.py:1240
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:711
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:727
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:741 stock/serializers.py:1225
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:746
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:753
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:755
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:761 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:763
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:774
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:777
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:783
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:790
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:824
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:852
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1378
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1384
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1390
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1393
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1396
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1403 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1474
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1477
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1480
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1483
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1486
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1489
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1496 stock/serializers.py:1136
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1500
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1504
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1508
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1702
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2192
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2250
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2256
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2275
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2281
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2287
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2294
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2300
msgid "Test notes"
msgstr ""
@@ -8231,141 +8102,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1093 stock/serializers.py:1364
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:948
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:952
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:956
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:987
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:993
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1001
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1011 stock/serializers.py:1271
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1100
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1105
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1106
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1111
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1112
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1122
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1211
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1232
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1261
msgid "Stock transaction notes"
msgstr ""
@@ -8406,7 +8277,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3230
+#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3193
msgid "Install Stock Item"
msgstr ""
@@ -8414,7 +8285,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1667
+#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1641
msgid "Add Test Result"
msgstr ""
@@ -8437,17 +8308,17 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:80
-#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1792
+#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1766
msgid "Count stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: templates/js/translated/stock.js:1774
+#: templates/js/translated/stock.js:1748
msgid "Add stock"
msgstr ""
#: stock/templates/stock/item_base.html:83
-#: templates/js/translated/stock.js:1783
+#: templates/js/translated/stock.js:1757
msgid "Remove stock"
msgstr ""
@@ -8456,12 +8327,12 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:89
-#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1801
+#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1775
msgid "Transfer stock"
msgstr ""
#: stock/templates/stock/item_base.html:92
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1829
msgid "Assign to customer"
msgstr ""
@@ -8586,7 +8457,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:438
-#: templates/js/translated/table_filters.js:435
+#: templates/js/translated/table_filters.js:411
msgid "Expired"
msgstr ""
@@ -8596,7 +8467,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:440
-#: templates/js/translated/table_filters.js:441
+#: templates/js/translated/table_filters.js:417
msgid "Stale"
msgstr ""
@@ -8605,7 +8476,7 @@ msgid "No stocktake performed"
msgstr ""
#: stock/templates/stock/item_base.html:508
-#: templates/js/translated/stock.js:1922
+#: templates/js/translated/stock.js:1896
msgid "stock item"
msgstr ""
@@ -8716,7 +8587,7 @@ msgid "New Location"
msgstr ""
#: stock/templates/stock/location.html:288
-#: templates/js/translated/stock.js:2543
+#: templates/js/translated/stock.js:2517
msgid "stock location"
msgstr ""
@@ -9102,7 +8973,7 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:100
#: templates/js/translated/plugin.js:67
-#: templates/js/translated/table_filters.js:492
+#: templates/js/translated/table_filters.js:468
msgid "Builtin"
msgstr ""
@@ -9112,7 +8983,7 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:107
#: templates/js/translated/plugin.js:71
-#: templates/js/translated/table_filters.js:496
+#: templates/js/translated/table_filters.js:472
msgid "Sample"
msgstr ""
@@ -9225,7 +9096,7 @@ msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:81
#: templates/js/translated/forms.js:508 templates/js/translated/helpers.js:105
#: templates/js/translated/part.js:389 templates/js/translated/pricing.js:629
-#: templates/js/translated/stock.js:245 users/models.py:257
+#: templates/js/translated/stock.js:219 users/models.py:256
msgid "Delete"
msgstr ""
@@ -9285,32 +9156,6 @@ msgstr ""
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:420
-msgid "No stock location types found"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:441
-msgid "Location count"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
-msgid "Edit Location Type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:447
-msgid "Delete Location type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:470
-msgid "Delete Location Type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:480
-#: templates/InvenTree/settings/stock.html:35
-msgid "New Location Type"
-msgstr ""
-
#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -9364,10 +9209,6 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:31
-msgid "Stock Location Types"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:13
msgid "Account Settings"
msgstr ""
@@ -9905,7 +9746,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10084,7 +9925,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1129
msgid "Remove stock item"
msgstr ""
@@ -10282,74 +10123,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
@@ -10393,13 +10234,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:357 templates/js/translated/stock.js:119
-#: templates/js/translated/stock.js:294
+#: templates/js/translated/build.js:357 templates/js/translated/stock.js:118
+#: templates/js/translated/stock.js:268
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:359 templates/js/translated/stock.js:121
-#: templates/js/translated/stock.js:296
+#: templates/js/translated/build.js:359 templates/js/translated/stock.js:120
+#: templates/js/translated/stock.js:270
msgid "Latest serial number"
msgstr ""
@@ -10632,7 +10473,7 @@ msgstr ""
#: templates/js/translated/build.js:2099 templates/js/translated/build.js:2464
#: templates/js/translated/forms.js:2041 templates/js/translated/forms.js:2057
#: templates/js/translated/part.js:2311 templates/js/translated/part.js:2737
-#: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681
+#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:2655
msgid "Select"
msgstr ""
@@ -10644,7 +10485,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2195 templates/js/translated/stock.js:3013
+#: templates/js/translated/build.js:2195 templates/js/translated/stock.js:2976
msgid "No user information"
msgstr ""
@@ -10714,7 +10555,7 @@ msgstr ""
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:2639 templates/js/translated/stock.js:1836
+#: templates/js/translated/build.js:2639 templates/js/translated/stock.js:1810
msgid "Order stock"
msgstr ""
@@ -11274,7 +11115,7 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:329 templates/js/translated/stock.js:175
+#: templates/js/translated/part.js:329 templates/js/translated/stock.js:150
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
@@ -11399,7 +11240,7 @@ msgid "Copy Bill of Materials"
msgstr ""
#: templates/js/translated/part.js:682
-#: templates/js/translated/table_filters.js:743
+#: templates/js/translated/table_filters.js:719
msgid "Low stock"
msgstr ""
@@ -11525,7 +11366,7 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:2526 templates/js/translated/part.js:2656
-#: templates/js/translated/stock.js:2640
+#: templates/js/translated/stock.js:2614
msgid "Display as list"
msgstr ""
@@ -11537,7 +11378,7 @@ msgstr ""
msgid "No subcategories found"
msgstr ""
-#: templates/js/translated/part.js:2676 templates/js/translated/stock.js:2660
+#: templates/js/translated/part.js:2676 templates/js/translated/stock.js:2634
msgid "Display as tree"
msgstr ""
@@ -11553,12 +11394,12 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2900 templates/js/translated/stock.js:1436
+#: templates/js/translated/part.js:2900 templates/js/translated/stock.js:1410
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2901 templates/js/translated/stock.js:1437
-#: templates/js/translated/stock.js:1699
+#: templates/js/translated/part.js:2901 templates/js/translated/stock.js:1411
+#: templates/js/translated/stock.js:1673
msgid "Delete test result"
msgstr ""
@@ -12135,7 +11976,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:1620
#: templates/js/translated/sales_order.js:1707
-#: templates/js/translated/stock.js:1744
+#: templates/js/translated/stock.js:1718
msgid "Shipped to customer"
msgstr ""
@@ -12197,472 +12038,464 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:98
+#: templates/js/translated/stock.js:97
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:129
+#: templates/js/translated/stock.js:128
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:139
-msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on"
-msgstr ""
-
-#: templates/js/translated/stock.js:152
+#: templates/js/translated/stock.js:137
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:166
-msgid "Add Location type"
-msgstr ""
-
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:176
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:217
+#: templates/js/translated/stock.js:191
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:219
+#: templates/js/translated/stock.js:193
msgid "Create another location after this one"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:194
msgid "Stock location created"
msgstr ""
-#: templates/js/translated/stock.js:234
+#: templates/js/translated/stock.js:208
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:241
+#: templates/js/translated/stock.js:215
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:250
+#: templates/js/translated/stock.js:224
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:254
+#: templates/js/translated/stock.js:228
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:259
+#: templates/js/translated/stock.js:233
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:313
+#: templates/js/translated/stock.js:287
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:349
+#: templates/js/translated/stock.js:323
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: templates/js/translated/stock.js:362
+#: templates/js/translated/stock.js:336
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:342
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:439
+#: templates/js/translated/stock.js:413
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:459
+#: templates/js/translated/stock.js:433
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:475
+#: templates/js/translated/stock.js:449
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:480
+#: templates/js/translated/stock.js:454
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:501
+#: templates/js/translated/stock.js:475
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:543
+#: templates/js/translated/stock.js:517
msgid "Create another item after this one"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:529
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:542
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:593
+#: templates/js/translated/stock.js:567
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598
+#: templates/js/translated/stock.js:571 templates/js/translated/stock.js:572
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:614
+#: templates/js/translated/stock.js:588
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:634
+#: templates/js/translated/stock.js:608
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:643
+#: templates/js/translated/stock.js:617
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:751
+#: templates/js/translated/stock.js:725
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:752
+#: templates/js/translated/stock.js:726
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:829
+#: templates/js/translated/stock.js:803
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:830
+#: templates/js/translated/stock.js:804
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:832
+#: templates/js/translated/stock.js:806
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:833
+#: templates/js/translated/stock.js:807
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:928
+#: templates/js/translated/stock.js:902
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:929
+#: templates/js/translated/stock.js:903
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1024
+#: templates/js/translated/stock.js:998
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:1025
+#: templates/js/translated/stock.js:999
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:1031
+#: templates/js/translated/stock.js:1005
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:1032
+#: templates/js/translated/stock.js:1006
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:1036
+#: templates/js/translated/stock.js:1010
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:1037
+#: templates/js/translated/stock.js:1011
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:1041
+#: templates/js/translated/stock.js:1015
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:1042 users/models.py:253
+#: templates/js/translated/stock.js:1016 users/models.py:252
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1020
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1117
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1117
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3258
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:3221
msgid "Select Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1178
+#: templates/js/translated/stock.js:1152
msgid "Select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1224
+#: templates/js/translated/stock.js:1198
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1334
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1362
+#: templates/js/translated/stock.js:1336
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1367
+#: templates/js/translated/stock.js:1341
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1429
+#: templates/js/translated/stock.js:1403
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1406
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/stock.js:1430
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:1494
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1682
+#: templates/js/translated/stock.js:1656
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1704
+#: templates/js/translated/stock.js:1678
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1736
+#: templates/js/translated/stock.js:1710
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1740
+#: templates/js/translated/stock.js:1714
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1748
+#: templates/js/translated/stock.js:1722
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1754
+#: templates/js/translated/stock.js:1728
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1784
msgid "Change stock status"
msgstr ""
-#: templates/js/translated/stock.js:1819
+#: templates/js/translated/stock.js:1793
msgid "Merge stock"
msgstr ""
-#: templates/js/translated/stock.js:1868
+#: templates/js/translated/stock.js:1842
msgid "Delete stock"
msgstr ""
-#: templates/js/translated/stock.js:1923
+#: templates/js/translated/stock.js:1897
msgid "stock items"
msgstr ""
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1902
msgid "Scan to location"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1913
msgid "Stock Actions"
msgstr ""
-#: templates/js/translated/stock.js:1983
+#: templates/js/translated/stock.js:1957
msgid "Load installed items"
msgstr ""
-#: templates/js/translated/stock.js:2061
+#: templates/js/translated/stock.js:2035
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:2066
+#: templates/js/translated/stock.js:2040
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:2069
+#: templates/js/translated/stock.js:2043
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2046
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:2074
+#: templates/js/translated/stock.js:2048
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:2076
+#: templates/js/translated/stock.js:2050
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2053
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2081
+#: templates/js/translated/stock.js:2055
msgid "Stock item has been consumed by a build order"
msgstr ""
-#: templates/js/translated/stock.js:2085
+#: templates/js/translated/stock.js:2059
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:2087
+#: templates/js/translated/stock.js:2061
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:2092
+#: templates/js/translated/stock.js:2066
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2068
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:2096
+#: templates/js/translated/stock.js:2070
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:2100
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/stock.js:2074
+#: templates/js/translated/table_filters.js:326
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:2265
+#: templates/js/translated/stock.js:2239
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2312
+#: templates/js/translated/stock.js:2286
msgid "Stock Value"
msgstr ""
-#: templates/js/translated/stock.js:2440
+#: templates/js/translated/stock.js:2414
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2544
+#: templates/js/translated/stock.js:2518
msgid "stock locations"
msgstr ""
-#: templates/js/translated/stock.js:2699
+#: templates/js/translated/stock.js:2673
msgid "Load Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2780
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2784
msgid "No changes"
msgstr ""
-#: templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:2796
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2855
+#: templates/js/translated/stock.js:2818
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2835
msgid "Build order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2850
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2904
+#: templates/js/translated/stock.js:2867
msgid "Sales Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2921
+#: templates/js/translated/stock.js:2884
msgid "Return Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2940
+#: templates/js/translated/stock.js:2903
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2958
+#: templates/js/translated/stock.js:2921
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2976
+#: templates/js/translated/stock.js:2939
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2984
+#: templates/js/translated/stock.js:2947
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:3056
+#: templates/js/translated/stock.js:3019
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:3106 templates/js/translated/stock.js:3141
+#: templates/js/translated/stock.js:3069 templates/js/translated/stock.js:3104
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3163
+#: templates/js/translated/stock.js:3126
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:3184
+#: templates/js/translated/stock.js:3147
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:3185
+#: templates/js/translated/stock.js:3148
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:3187
+#: templates/js/translated/stock.js:3150
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3188
+#: templates/js/translated/stock.js:3151
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:3189
+#: templates/js/translated/stock.js:3152
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:3190
+#: templates/js/translated/stock.js:3153
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:3203
+#: templates/js/translated/stock.js:3166
msgid "Select part to install"
msgstr ""
-#: templates/js/translated/stock.js:3259
+#: templates/js/translated/stock.js:3222
msgid "Select one or more stock items"
msgstr ""
-#: templates/js/translated/stock.js:3272
+#: templates/js/translated/stock.js:3235
msgid "Selected stock items"
msgstr ""
-#: templates/js/translated/stock.js:3276
+#: templates/js/translated/stock.js:3239
msgid "Change Stock Status"
msgstr ""
@@ -12671,23 +12504,23 @@ msgid "Has project code"
msgstr ""
#: templates/js/translated/table_filters.js:89
-#: templates/js/translated/table_filters.js:601
-#: templates/js/translated/table_filters.js:613
-#: templates/js/translated/table_filters.js:654
+#: templates/js/translated/table_filters.js:577
+#: templates/js/translated/table_filters.js:589
+#: templates/js/translated/table_filters.js:630
msgid "Order status"
msgstr ""
#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:618
-#: templates/js/translated/table_filters.js:644
-#: templates/js/translated/table_filters.js:659
+#: templates/js/translated/table_filters.js:594
+#: templates/js/translated/table_filters.js:620
+#: templates/js/translated/table_filters.js:635
msgid "Outstanding"
msgstr ""
#: templates/js/translated/table_filters.js:102
-#: templates/js/translated/table_filters.js:524
-#: templates/js/translated/table_filters.js:626
-#: templates/js/translated/table_filters.js:667
+#: templates/js/translated/table_filters.js:500
+#: templates/js/translated/table_filters.js:602
+#: templates/js/translated/table_filters.js:643
msgid "Assigned to me"
msgstr ""
@@ -12708,12 +12541,12 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:775
+#: templates/js/translated/table_filters.js:751
msgid "Has Pricing"
msgstr ""
#: templates/js/translated/table_filters.js:234
-#: templates/js/translated/table_filters.js:345
+#: templates/js/translated/table_filters.js:321
msgid "Include sublocations"
msgstr ""
@@ -12721,210 +12554,206 @@ msgstr ""
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:267
-msgid "Has location type"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:278
-#: templates/js/translated/table_filters.js:279
-#: templates/js/translated/table_filters.js:707
+#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:255
+#: templates/js/translated/table_filters.js:683
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:755
+#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:731
msgid "Subscribed"
msgstr ""
-#: templates/js/translated/table_filters.js:298
-#: templates/js/translated/table_filters.js:380
+#: templates/js/translated/table_filters.js:274
+#: templates/js/translated/table_filters.js:356
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:301
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:277
+#: templates/js/translated/table_filters.js:363
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:302
-#: templates/js/translated/table_filters.js:388
+#: templates/js/translated/table_filters.js:278
+#: templates/js/translated/table_filters.js:364
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:305
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:281
+#: templates/js/translated/table_filters.js:367
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:306
-#: templates/js/translated/table_filters.js:392
+#: templates/js/translated/table_filters.js:282
+#: templates/js/translated/table_filters.js:368
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:309
-#: templates/js/translated/table_filters.js:310
-#: templates/js/translated/table_filters.js:383
-#: templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:286
+#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:360
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:314
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:381
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:325
-#: templates/js/translated/table_filters.js:696
+#: templates/js/translated/table_filters.js:301
+#: templates/js/translated/table_filters.js:672
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:302
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:307
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:311
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:312
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:317
msgid "Stock is available for use"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:322
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:351
+#: templates/js/translated/table_filters.js:327
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:356
+#: templates/js/translated/table_filters.js:332
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:360
+#: templates/js/translated/table_filters.js:336
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:361
+#: templates/js/translated/table_filters.js:337
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:365
+#: templates/js/translated/table_filters.js:341
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:366
+#: templates/js/translated/table_filters.js:342
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:347
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:376
+#: templates/js/translated/table_filters.js:352
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:396
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:372
+#: templates/js/translated/table_filters.js:373
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:400
+#: templates/js/translated/table_filters.js:376
msgid "Has batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:409
+#: templates/js/translated/table_filters.js:385
msgid "Stock item is tracked by either batch code or serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:414
+#: templates/js/translated/table_filters.js:390
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:415
+#: templates/js/translated/table_filters.js:391
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:419
+#: templates/js/translated/table_filters.js:395
msgid "Expiry Date before"
msgstr ""
-#: templates/js/translated/table_filters.js:423
+#: templates/js/translated/table_filters.js:399
msgid "Expiry Date after"
msgstr ""
-#: templates/js/translated/table_filters.js:436
+#: templates/js/translated/table_filters.js:412
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:442
+#: templates/js/translated/table_filters.js:418
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:456
+#: templates/js/translated/table_filters.js:432
msgid "Test Passed"
msgstr ""
-#: templates/js/translated/table_filters.js:460
+#: templates/js/translated/table_filters.js:436
msgid "Include Installed Items"
msgstr ""
-#: templates/js/translated/table_filters.js:511
+#: templates/js/translated/table_filters.js:487
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:708
+#: templates/js/translated/table_filters.js:684
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:713
+#: templates/js/translated/table_filters.js:689
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:721
+#: templates/js/translated/table_filters.js:697
msgid "Available stock"
msgstr ""
-#: templates/js/translated/table_filters.js:729
-#: templates/js/translated/table_filters.js:825
+#: templates/js/translated/table_filters.js:705
+#: templates/js/translated/table_filters.js:801
msgid "Has Units"
msgstr ""
-#: templates/js/translated/table_filters.js:730
+#: templates/js/translated/table_filters.js:706
msgid "Part has defined units"
msgstr ""
-#: templates/js/translated/table_filters.js:734
+#: templates/js/translated/table_filters.js:710
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:735
+#: templates/js/translated/table_filters.js:711
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:739
+#: templates/js/translated/table_filters.js:715
msgid "In stock"
msgstr ""
-#: templates/js/translated/table_filters.js:747
+#: templates/js/translated/table_filters.js:723
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/table_filters.js:759
+#: templates/js/translated/table_filters.js:735
msgid "Has stocktake entries"
msgstr ""
-#: templates/js/translated/table_filters.js:821
+#: templates/js/translated/table_filters.js:797
msgid "Has Choices"
msgstr ""
@@ -13214,35 +13043,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:240
+#: users/models.py:239
msgid "Permission set"
msgstr ""
-#: users/models.py:248
+#: users/models.py:247
msgid "Group"
msgstr ""
-#: users/models.py:251
+#: users/models.py:250
msgid "View"
msgstr ""
-#: users/models.py:251
+#: users/models.py:250
msgid "Permission to view items"
msgstr ""
-#: users/models.py:253
+#: users/models.py:252
msgid "Permission to add items"
msgstr ""
-#: users/models.py:255
+#: users/models.py:254
msgid "Change"
msgstr ""
-#: users/models.py:255
+#: users/models.py:254
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:257
+#: users/models.py:256
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/fi/LC_MESSAGES/django.po b/InvenTree/locale/fi/LC_MESSAGES/django.po
index e72f6bd449..48bb94f9ac 100644
--- a/InvenTree/locale/fi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Language: fi_FI\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API-rajapintaa ei löydy"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Käyttäjän oikeudet eivät riitä kohteen tarkastelemiseen"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Arvoa ei annettu"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Virheen tiedot löytyvät hallintapaneelista"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Anna päivämäärä"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Anna päivämäärä"
msgid "Notes"
msgstr "Merkinnät"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -103,99 +98,99 @@ msgstr "Vahvista uusi salasana"
msgid "Old password"
msgstr "Vanha salasana"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Sähköposti (uudelleen)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Sähköpostiosoitteen vahvistus"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Sinun täytyy kirjoittaa sama sähköposti joka kerta."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Annettu ensisijainen sähköpostiosoite ei kelpaa."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Annetun sähköpostiosoitteen verkkotunnusta ei hyväksytä."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Annettu määrä on virheellinen"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Tyhjä sarjanumero"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Duplikaatti sarjanumero"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Sarjanumeroita ei löytynyt"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Yksilöllisten sarjanumeroiden määrän ({s}) on vastattava määrää ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Yhteysvirhe"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Palvelin vastasi virheellisellä tilakoodilla"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Kuva on liian iso"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Kuvan lataus ylitti enimmäiskoon"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Etäpalvelin palautti tyhjän vastauksen"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Annettu URL ei ole kelvollinen kuvatiedosto"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr "Sähköposti"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "Metatietojen tulee olla python dict objekti"
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Liitännäisen metadata"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON metadatakenttä, ulkoisten liitännäisten käyttöön"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Virheellisesti muotoiltu malli"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Viitekenttä ei voi olla tyhjä"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Viitenumero on liian suuri"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Puuttuva tiedosto"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Puuttuva ulkoinen linkki"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Liite"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Valitse liitettävä tiedosto"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Valitse liitettävä tiedosto"
msgid "Link"
msgstr "Linkki"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Linkki ulkoiseen URLiin"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Kommentti"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Tiedoston kommentti"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Käyttäjä"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "latauspäivä"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Tiedoston nimi ei saa olla tyhjä"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Virheellinen liitteen hakemisto"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Tiedostonimi sisältää kielletyn merkin '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Tiedostonimen pääte puuttuu"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Samanniminen liite on jo olemassa"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Virhe tiedoston uudelleennimeämisessä"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Virheellinen valinta"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Virheellinen valinta"
msgid "Name"
msgstr "Nimi"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Nimi"
msgid "Description"
msgstr "Kuvaus"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Kuvaus (valinnainen)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr ""
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Polku"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Viivakoodin Tiedot"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Palvelinvirhe"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Täytyy olla kelvollinen luku"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Valuutta"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Valitse valuutta käytettävissä olevista vaihtoehdoista"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Tiedostonimi"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Virheellinen arvo"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Datatiedosto"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Valitse lähetettävä datatiedosto"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Tiedostotyyppiä ei tueta"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Tiedosto on liian suuri"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Datarivejä ei annettu"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Datasarakkeita ei annettu"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Vaadittu sarake puuttuu: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplikaatti sarake: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "Kuvatiedoston URL"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Kuvien lataaminen ei ole käytössä"
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr ""
@@ -688,7 +683,7 @@ msgstr "Palautettu"
msgid "In Progress"
msgstr "Kesken"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Muokkaa käyttäjätietoja"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Aseta salasana"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Salasanat eivät täsmää"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Virheellinen salasana"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Järjestelmän tiedot"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Tietoja InvenTree:stä"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr ""
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "Määrä"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr "Varastotuote"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Sarjanumerot"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr "Sijainti"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr "Tila"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr "Ei sallittu"
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr "Päivitetty"
msgid "Timestamp of last update"
msgstr "Viimeisimmän päivityksen aikaleima"
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Ei ryhmää"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr "Verkkotunnus ei saa olla tyhjä."
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Virheellinen verkkotunnus: {domain}"
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Uudelleenkäynnistys vaaditaan"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Yrityksen nimi"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Yrityksen sisäinen nimi"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Oletusvaluutta"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "päivää"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Automaattinen varmuuskopionti"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Ota käyttöön tietokannan ja mediatiedostojen automaattinen varmuuskopiointi"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Automaattisen varmuuskopioinnin aikaväli"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Viivakoodituki"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Komponentti"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Ostettavissa"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Seurattavissa"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Sisäiset hinnat"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr "Sisäisen hinnan ohitus"
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Sivun koko"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr "Täytä sarjanumerot automaattisesti"
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr "Salli salasananpalautus"
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr "Salli rekisteröinti"
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "Salli SSO"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "Salli SSO kirjautumissivuilla"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr "Salli SSO rekisteröinti"
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Sähköposti vaaditaan"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "Sähköpostiosoite kahdesti"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Salasana kahdesti"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Sallitut verkkotunnukset"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr "Pakota MFA"
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr "Näytä uutiset"
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr "Näytä uutiset kotisivulla"
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Hinta"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr "Aktiivinen"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr "Salaisuus"
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr "Isäntä"
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Otsikko"
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr "Julkaistu"
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "Julkaisija"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Yhteenveto"
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr "Kuva"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr "Kuvatiedosto"
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Uusi {verbose_name}"
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Yritys"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr "Valmistaja"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Valitse valmistaja"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Valitse valmistaja"
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Valmistajan osanumero"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Arvo"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr "Toimittaja"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Valitse toimittaja"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Valitse toimittaja"
msgid "SKU"
msgstr "SKU"
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr "Toimittajan varastonimike"
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "Valitse valmistajan osa"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Muistiinpano"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Asiakas"
msgid "Uses default currency"
msgstr "Käyttää oletusvaluuttaa"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Uusi toimittaja"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Uusi valmistaja"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Asiakkaat"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Uusi asiakas"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Yritykset"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Uusi yritys"
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Käytössä"
@@ -4449,7 +4446,7 @@ msgstr "Korkeus [mm]"
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Suodattimet"
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr "QR-koodi"
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr "QR-koodi"
msgid "Total Price"
msgstr "Hinta yhteensä"
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr "Tilauksen valuutta"
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Tilauksen viite"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr "Asiakkaan viite "
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr "Vastaanotettu"
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr "Seurantakoodi"
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr "Laskunumero"
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "Viivakoodi"
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Toiminnot"
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Avainsanat"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr "Kuvake (valinnainen)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr "Päivämäärä"
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr "Muut merkinnät"
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr "Raportti"
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr "Valmistajan osanumero"
@@ -6378,190 +6375,190 @@ msgstr "Valmistajan osanumero"
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr "Luo raportti"
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr "Avaa linkki"
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 664ab03c0f..f9ed4189b2 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:26\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "Point de terminaison de l'API introuvable"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "L'utilisateur n'a pas la permission de voir ce modèle"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Pas de valeur renseignée"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'administration"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Entrer la date"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Entrer la date"
msgid "Notes"
msgstr "Notes"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "La valeur '{name}' n'apparaît pas dans le format du modèle"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "La valeur fournie ne correspond pas au modèle requis : "
@@ -103,99 +98,99 @@ msgstr "Confirmer le nouveau mot de passe"
msgid "Old password"
msgstr "Ancien mot de passe"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Email (encore)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Confirmation de l'adresse email"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Vous devez taper le même e-mail à chaque fois."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "L'adresse e-mail principale fournie n'est pas valide."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Le domaine e-mail fourni n'est pas approuvé."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "L'enregistrement est désactivé."
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Chaîne de numéro de série vide"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Numéro de série en doublon"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Plage de groupe invalide : {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "La plage de groupe {g} dépasse la quantité autorisée ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Séquence de groupe invalide : {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Aucun numéro de série trouvé"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Retirer les balises HTML de cette valeur"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Erreur de connexion"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Le serveur a répondu avec un code de statut invalide"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Une erreur est survenue"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Le serveur a répondu avec une valeur de longueur de contenu invalide"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Image trop volumineuse"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "La taille de l'image dépasse la taille maximale autorisée"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Le serveur distant a renvoyé une réponse vide"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "L'URL fournie n'est pas un fichier image valide"
@@ -211,64 +206,64 @@ msgstr "[{site.name}] Se connecter à l'application"
msgid "Email"
msgstr "E-mail"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "Les metadata doivent être un objet python de type \"dict\""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Métadonnées de l'Extension"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "Champs metadata JSON, pour plugins tiers"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Modèle mal formaté"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Clé de format inconnu spécifiée"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Clé de format requise manquante"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Le champ de référence ne peut pas être vide"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "La référence doit correspondre au modèle requis"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Le numéro de référence est trop grand"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Fichier manquant"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Lien externe manquant"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Pièce jointe"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Sélectionnez un fichier à joindre"
msgid "Link"
msgstr "Lien"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Lien vers une url externe"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Commentaire"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Utilisateur"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "date de chargement"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Le nom de fichier ne doit pas être vide"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Répertoire de pièce jointe invalide"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Le nom de fichier contient le caractère illégal '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Extension manquante du nom de fichier"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Une pièce jointe avec ce nom de fichier existe déjà"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Erreur lors du renommage du fichier"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Choix invalide"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Choix invalide"
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Nom"
msgid "Description"
msgstr "Description"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Description (facultative)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "parent"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Chemin d'accès"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Notes Markdown (option)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Données du code-barres"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Données de code-barres tierces"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Hash du code-barre"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Hachage unique des données du code-barres"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Code-barres existant trouvé"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Erreur serveur"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Une erreur a été loguée par le serveur."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Doit être un nombre valide"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Devise"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Sélectionnez la devise à partir des options disponibles"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Nom du fichier"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Valeur non valide"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Fichier de données"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Sélectionnez le fichier de données à envoyer"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Format de fichier non supporté"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Fichier trop volumineux"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Pas de colonnes trouvées dans le fichier"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Par de lignes de données trouvées dans le fichier"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Pas de lignes de données fournies"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Pas de colonne de données fournie"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Colonne requise manquante : {name}"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Colonne duliquée : '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL du fichier image distant"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Le téléchargement des images depuis une URL distante n'est pas activé"
@@ -639,7 +634,7 @@ msgstr "Chinois (Simplifié)"
msgid "Chinese (Traditional)"
msgstr "Chinois (Traditionnel)"
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Échec de la vérification du processus d'arrière-plan"
@@ -688,7 +683,7 @@ msgstr "Retourné"
msgid "In Progress"
msgstr "En Cours"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Remboursement"
msgid "Reject"
msgstr "Refuser"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr "Unité invalide"
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Code de devise invalide"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "La valeur de surplus ne doit pas être négative"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Le surplus ne doit pas dépasser 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Valeur invalide pour le dépassement"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Modifier les informations utilisateur"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Définir le mot de passe"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Les mots de passe doivent correspondre"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Mot de passe incorrect"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Informations système"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "À propos d'InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "La construction doit être annulée avant de pouvoir être supprimée"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "Consommable"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "Consommable"
msgid "Optional"
msgstr "Facultatif"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr "Suivi"
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Allouée"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Choix invalide pour la fabrication parente"
msgid "Build Order Reference"
msgstr "Référence de l' Ordre de Fabrication"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "BuildOrder associé a cette fabrication"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "BuildOrder associé a cette fabrication"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Bon de commande de référence"
msgid "SalesOrder to which this build is allocated"
msgstr "Commande de vente à laquelle cette construction est allouée"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "État de la construction"
msgid "Build status code"
msgstr "Code de statut de construction"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Code de lot"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Code de lot pour ce build output"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Date d'achèvement cible"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Date d'achèvement"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Utilisateur ayant émis cette commande de construction"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Utilisateur ou groupe responsable de cet ordre de construction"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Priorité de fabrication"
msgid "Priority of this build order"
msgstr "Priorité de cet ordre de fabrication"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "Code du projet"
msgid "Project code for this build order"
msgstr "Code de projet pour cet ordre de construction"
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "La commande de construction {build} a été effectuée"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Une commande de construction a été effectuée"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Pas d'ordre de production défini"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "L'ordre de production a déjà été réalisé"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "L'ordre de production de correspond pas à l'ordre de commande"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr "La quantité ne peut pas être supérieure à la quantité de sortie"
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr "Création de l'objet"
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr "Création de l'objet"
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr "Création de l'objet"
msgid "Quantity"
msgstr "Quantité"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr "Quantité requise pour la commande de construction"
-#: build/models.py:1354
+#: build/models.py:1371
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:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "L'article de stock est suralloué"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "La quantité allouée doit être supérieure à zéro"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantité doit être de 1 pour stock sérialisé"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM"
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM"
msgid "Stock Item"
msgstr "Article en stock"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Stock d'origine de l'article"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Quantité de stock à allouer à la construction"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Installer dans"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Stock de destination de l'article"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Sortie d'assemblage"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "L'ordre de production ne correspond pas à l'ordre parent"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "La pièce en sortie ne correspond pas à la pièce de l'ordre de construction"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Cet ordre de production a déjà été produit"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "Cet ordre de production n'est pas complètement attribué"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Entrer la quantité désiré pour la fabrication"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Quantité entière requise pour les pièces à suivre"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Quantité entière requise, car la facture de matériaux contient des pièces à puce"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Numéros de série"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Entrer les numéros de séries pour la fabrication"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Allouer automatiquement les numéros de série"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Affecter automatiquement les éléments requis avec les numéros de série correspondants"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "Les numéros de série suivants existent déjà, ou sont invalides"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "Une liste d'ordre de production doit être fourni"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "Une liste d'ordre de production doit être fourni"
msgid "Location"
msgstr "Emplacement"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr "Emplacement du stock pour les sorties épuisées"
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr "Ignorer les allocations"
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Abandonner les allocations de stock pour les sorties abandonnées"
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "Emplacement des ordres de production achevés"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr "Emplacement des ordres de production achevés"
msgid "Status"
msgstr "État"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "Accepter l'allocation incomplète"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Compléter les sorties si le stock n'a pas été entièrement alloué"
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr "Supprimer le stock alloué"
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Soustraire tout stock qui a déjà été alloué à cette construction"
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "Retirer les sorties incomplètes"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr "Supprimer toutes les sorties de construction qui n'ont pas été complétées"
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr "Non permis"
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr "Accepter comme consommé par cet ordre de construction"
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr "Désaffecter avant de terminer cette commande de fabrication"
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr "Stock suralloué"
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Comment voulez-vous gérer les articles en stock supplémentaires assignés à l'ordre de construction"
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr "Certains articles de stock ont été suralloués"
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "Accepter les non-alloués"
-#: build/serializers.py:653
+#: build/serializers.py:657
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:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "Le stock requis n'a pas encore été totalement alloué"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Accepter les incomplèts"
-#: build/serializers.py:669
+#: build/serializers.py:673
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:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "La quantité nécessaire n'a pas encore été complétée"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "L'ordre de production a des sorties incomplètes"
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr "Chaîne d'assemblage"
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "Sortie d'assemblage"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "La sortie de la construction doit pointer vers la même construction"
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part doit pointer sur la même pièce que l'ordre de construction"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "L'article doit être en stock"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantité disponible ({q}) dépassée"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "La sortie de construction doit être spécifiée pour l'allocation des pièces suivies"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "La sortie de la construction ne peut pas être spécifiée pour l'allocation des pièces non suivies"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "Cet article de stock a déjà été alloué à cette sortie de construction"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "Les articles d'allocation doivent être fournis"
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Emplacement de stock où les pièces doivent être fournies (laissez vide pour les prendre à partir de n'importe quel emplacement)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Emplacements exclus"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Exclure les articles de stock de cet emplacement sélectionné"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "Stock interchangeable"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Les articles de stock à plusieurs emplacements peuvent être utilisés de manière interchangeable"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Stock de substitution"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "Autoriser l'allocation de pièces de remplacement"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr "Objets Optionnels"
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr "Affecter des éléments de nomenclature facultatifs à l'ordre de fabrication"
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "Stock requis pour la commande de construction"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr "Ordre de commande en retard"
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr "L'ordre de commande {bo} est maintenant en retard"
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction"
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr "Sorties de Construction terminées"
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr "Stock d'origine"
msgid "Stock can be taken from any available location."
msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible."
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Destination"
@@ -2014,1372 +2013,1372 @@ msgstr "Mise à jour"
msgid "Timestamp of last update"
msgstr "Date de la dernière mise à jour"
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr "Code projet unique"
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr "Description du projet"
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr "Clé du paramètre (doit être unique - insensible à la casse)"
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr "Valeur du paramètre"
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr "La valeur choisie n'est pas une option valide"
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr "La valeur doit être une valeur booléenne"
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr "La valeur doit être un nombre entier"
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "La chaîne de caractères constituant la clé doit être unique"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Pas de groupe"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr "Un domaine vide n'est pas autorisé."
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nom de domaine invalide : {domain}"
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Redémarrage nécessaire"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr "Un paramètre a été modifié, ce qui nécessite un redémarrage du serveur"
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr "Nom de l'instance du serveur"
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr "Chaîne de caractères descriptive pour l'instance serveur"
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr "Utiliser le nom de l'instance"
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr "Utiliser le nom de l’instance dans la barre de titre"
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr "Limiter l'affichage de `about`"
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr "Afficher la modale `about` uniquement aux super-utilisateurs"
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Nom de la société"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Nom de société interne"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "URL de base"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "URL de base pour l'instance serveur"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Devise par défaut"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr "Sélectionnez la devise de base pour les calculs de prix"
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "jours"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Télécharger depuis l'URL"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Autoriser le téléchargement d'images distantes et de fichiers à partir d'URLs externes"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr "Limite du volume de téléchargement"
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr "Taille maximale autorisée pour le téléchargement de l'image distante"
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr "Agent utilisateur utilisé pour télécharger depuis l'URL"
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr "Permettre de remplacer l'agent utilisateur utilisé pour télécharger des images et des fichiers à partir d'URL externe (laisser vide pour la valeur par défaut)"
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Confirmation requise"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Exiger une confirmation explicite de l’utilisateur pour certaines actions."
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr "Profondeur de l'arborescence"
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr "Profondeur de l'arborescence par défaut. Les niveaux plus profonds peuvent être chargés au fur et à mesure qu'ils sont nécessaires."
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr "Intervalle de vérification des mises à jour"
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr "À quelle fréquence vérifier les mises à jour (définir à zéro pour désactiver)"
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Backup automatique"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Activer le backup automatique de la base de données et des fichiers médias"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Intervalle de sauvegarde automatique"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr "Spécifiez le nombre de jours entre les sauvegardes automatique"
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr "Intervalle de suppression des tâches"
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr "Les résultats de la tâche en arrière-plan seront supprimés après le nombre de jours spécifié"
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr "Intervalle de suppression du journal d'erreur"
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr "Les logs d'erreur seront supprimés après le nombre de jours spécifié"
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr "Intervalle de suppression du journal de notification"
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr "Les notifications de l'utilisateur seront supprimées après le nombre de jours spécifié"
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Support des code-barres"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr "Délai d'entrée du code-barres"
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr "Délai de traitement du code-barres"
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr "Prise en charge de la webcam code-barres"
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr "Autoriser la numérisation de codes-barres via la webcam dans le navigateur"
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr "Modifications de la pièce"
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr "Activer le champ de modification de la pièce"
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr "Regex IPN"
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr "Expression régulière pour la correspondance avec l'IPN de la Pièce"
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Autoriser les IPN dupliqués"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr "Permettre à plusieurs pièces de partager le même IPN"
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "Autoriser l'édition de l'IPN"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr "Permettre de modifier la valeur de l'IPN lors de l'édition d'une pièce"
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr "Copier les données de la pièce"
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce"
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr "Copier les données des paramètres de la pièce"
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce"
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr "Copier les données de test de la pièce"
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr "Copier les données de test par défaut lors de la duplication d'une pièce"
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr "Copier les templates de paramètres de catégorie"
-#: common/models.py:1313
+#: common/models.py:1324
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:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Modèle"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "Les pièces sont des templates par défaut"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Assemblage"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr "Les pièces peuvent être assemblées à partir d'autres composants par défaut"
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Composant"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "Les pièces peuvent être utilisées comme sous-composants par défaut"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Achetable"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Les pièces sont achetables par défaut"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Vendable"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Les pièces sont vendables par défaut"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Traçable"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Les pièces sont traçables par défaut"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Virtuelle"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Les pièces sont virtuelles par défaut"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr "Afficher l'import dans les vues"
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr "Afficher l'assistant d'importation pour certaine vues de produits"
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Afficher les pièces connexes"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Afficher les pièces connexes à une pièce"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr "Stock initial"
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr "Permettre la création d'un stock initial lors de l'ajout d'une nouvelle pièce"
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Données initiales du fournisseur"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr "Permettre la création des données initiales du fournisseur lors de l'ajout d'une nouvelle pièce"
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Format d'affichage du nom de la pièce"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Format pour afficher le nom de la pièce"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr "Icône de catégorie par défaut"
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr "Icône par défaut de la catégorie de la pièce (vide signifie aucune icône)"
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr "Utiliser le prix fournisseur"
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr "Inclure les réductions de prix dans le calcul du prix global"
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr "Remplacer l'historique des achats"
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr "La tarification historique des bons de commande remplace les réductions de prix des fournisseurs"
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr "Utiliser les prix des articles en stock"
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr "Utiliser les prix des données de stock saisies manuellement pour calculer les prix"
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr "Âge de tarification des articles de stock"
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr "Exclure les articles en stock datant de plus de ce nombre de jours des calculs de prix"
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr "Utiliser les prix variants"
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr "Inclure la tarification variante dans le calcul global des prix"
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr "Variantes actives uniquement"
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr "N'utiliser que des pièces de variante actives pour calculer le prix de la variante"
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr "Intervalle de regénération des prix"
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr "Nombre de jours avant la mise à jour automatique du prix de la pièce"
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Prix internes"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr "Activer les prix internes pour les pièces"
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr "Substitution du prix interne"
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr "Si disponible, les prix internes remplacent les calculs de la fourchette de prix"
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Activer l'impression d'étiquettes"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Activer l'impression d'étiquettes depuis l'interface Web"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "Étiquette image DPI"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr "Résolution DPI lors de la génération de fichiers image pour fournir aux plugins d'impression d'étiquettes"
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr "Activer les rapports"
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr "Activer la génération de rapports"
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Mode Débogage"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr "Générer des rapports en mode debug (sortie HTML)"
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Taille de la page"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Taille de page par défaut pour les rapports PDF"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr "Activer les rapports de test"
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr "Activer la génération de rapports de test"
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr "Joindre des rapports de test"
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr "Lors de l'impression d'un rapport de test, joignez une copie du rapport de test à l'article en stock associé"
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr "Numéro de Série Universellement Unique"
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr "Les numéros de série pour les articles en stock doivent être uniques au niveau global"
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr "Remplir automatiquement les Numéros de Série"
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr "Remplir automatiquement les numéros de série dans les formulaires"
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr "Supprimer le stock épuisé"
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr "Détermine le comportement par défaut lorsqu'un article de stock est épuisé"
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr "Modèle de code de lot"
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr "Modèle pour générer des codes par défaut pour les articles en stock"
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr "Expiration du stock"
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr "Activer la fonctionnalité d'expiration du stock"
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr "Vendre le stock expiré"
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr "Autoriser la vente de stock expiré"
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr "Délai de péremption du stock"
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr "Nombre de jours pendant lesquels les articles en stock sont considérés comme périmés avant d'expirer"
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr "Construction de stock expirée"
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr "Autoriser la construction avec un stock expiré"
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr "Contrôle de la propriété des stocks"
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr "Activer le contrôle de la propriété sur les emplacements de stock et les articles"
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr "Icône par défaut de l'emplacement du stock"
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr "Icône par défaut de l'emplacement du stock (vide signifie aucune icône)"
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr "Afficher les pièces en stock installées"
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr "Modèle de référence de commande de construction"
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr "Modèle requis pour générer le champ de référence de l'ordre de construction"
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr "Activer les retours de commandes"
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr "Activer la fonctionnalité de retour de commande dans l'interface utilisateur"
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr "Modèle de référence de retour de commande"
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr "Modèle requis pour générer le champ de référence du retour de commande"
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr "Modifier les retours de commandes terminées"
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr "Autoriser la modification des retours après leur enregistrement"
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr "Modèle de référence de bon de commande"
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr "Modèle requis pour générer le champ de référence du bon de commande"
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr "Expédition par défaut du bon de commande"
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr "Activer la création d'expédition par défaut avec les bons de commandes"
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr "Modifier les commandes de vente terminées"
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Autoriser la modification des commandes de vente après avoir été expédiées ou complétées"
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr "Modèle de référence de commande d'achat"
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Modèle requis pour générer le champ de référence de bon de commande"
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr "Modifier les bons de commande terminés"
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Autoriser la modification des bons de commande après avoir été expédiés ou complétés"
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr "Activer les mots de passe oubliés"
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr "Activer la fonction \"Mot de passe oublié\" sur les pages de connexion"
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr "Activer les inscriptions"
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr "Activer l'auto-inscription pour les utilisateurs sur les pages de connexion"
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "Activer le SSO"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "Activer le SSO sur les pages de connexion"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr "Activer l'inscription SSO"
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Activer l'auto-inscription via SSO pour les utilisateurs sur les pages de connexion"
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Email requis"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr "Exiger que l'utilisateur fournisse un mail lors de l'inscription"
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr "Saisie automatique des utilisateurs SSO"
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Remplir automatiquement les détails de l'utilisateur à partir des données de compte SSO"
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "Courriel en double"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mail"
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Mot de passe deux fois"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mot de passe"
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Domaines autorisés"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr "Grouper sur inscription"
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr "Groupe auquel les nouveaux utilisateurs sont assignés lors de l'inscription"
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr "Forcer l'authentification multifacteurs"
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr "Les utilisateurs doivent utiliser l'authentification multifacteurs."
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr "Vérifier les plugins au démarrage"
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Vérifier que tous les plugins sont installés au démarrage - activer dans les environnements conteneurs"
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr "Activer l'intégration d'URL"
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr "Autoriser les plugins à ajouter des chemins URL"
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr "Activer l'intégration de navigation"
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr "Activer les plugins à s'intégrer dans la navigation"
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr "Activer l'intégration de plugins"
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr "Activer l'intégration de plugin pour ajouter des apps"
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr "Activer l'intégration du planning"
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr "Autoriser les plugins à éxécuter des tâches planifiées"
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr "Activer l'intégration des évènements"
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr "Autoriser les plugins à répondre aux évènements internes"
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr "Activer les codes projet"
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr "Fonctionnalité d'inventaire"
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr "Activer la fonctionnalité d'inventaire pour enregistrer les niveaux de stock et le calcul de la valeur du stock"
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr "Période de l'inventaire automatique"
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr "Nombre de jours entre l'enregistrement automatique des stocks (définir à zéro pour désactiver)"
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "Les rapports d'inventaire seront supprimés après le nombre de jours spécifié"
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr "Clé du paramètre (doit être unique - insensible à la casse)"
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr "Afficher les composants suivis"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr "Afficher les composants suivis sur l'écran d'accueil"
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "Afficher les catégories suivies"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr "Afficher les catégories de pièces suivies sur la page d'accueil"
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Afficher les dernières pièces"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Afficher les derniers composants sur la page d'accueil"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr "Afficher les listes de matériaux non validées"
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr "Afficher les listes de matériaux en attente de validation sur la page d'accueil"
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr "Afficher les dernières modifications du stock"
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr "Afficher les articles de stock récemment modifiés sur la page d'accueil"
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Afficher le stock faible"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Afficher les articles en stock bas sur la page d'accueil"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr "Afficher le stock épuisé"
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr "Afficher les stocks épuisés sur la page d'accueil"
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Afficher le stock nécessaire"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr "Afficher les pièces en stock nécessaires pour les assemblages sur la page d'accueil"
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr "Afficher le stock expiré"
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr "Afficher les pièces en stock expirées sur la page d'accueil"
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr "Afficher le stock périmé"
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr "Afficher les articles de stock périmés sur la page d'accueil"
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr "Afficher les constructions en attente"
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr "Afficher les constructions en attente sur la page d'accueil"
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr "Afficher les constructions en retard"
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr "Afficher les constructions en retard sur la page d'accueil"
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr "Afficher les commandes en suspens"
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr "Afficher les commandes en suspens sur la page d'accueil"
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr "Afficher les commandes en retard"
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr "Afficher les commandes en retard sur la page d'accueil"
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr "Afficher les envois en suspens"
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr "Afficher les envois en suspens sur la page d'accueil"
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr "Afficher les envois en retard"
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr "Afficher les envois en retard sur la page d'accueil"
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr "Afficher les nouvelles"
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr "Afficher les nouvelles sur la page d'accueil"
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr "Affichage du libellé en ligne"
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Afficher les étiquettes PDF dans le navigateur, au lieu de les télécharger en tant que fichier"
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr "Imprimante d'étiquettes par défaut"
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr "Configurer quelle imprimante d'étiquette doit être sélectionnée par défaut"
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr "Affichage du rapport en ligne"
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Afficher les rapports PDF dans le navigateur, au lieu de les télécharger en tant que fichier"
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr "Rechercher de pièces"
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr "Afficher les pièces dans la fenêtre d'aperçu de la recherche"
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr "Afficher les pièces du fournisseur dans la fenêtre de prévisualisation de la recherche"
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr "Rechercher les pièces du fabricant"
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr "Afficher les pièces du fabricant dans la fenêtre de prévisualisation de recherche"
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr "Masquer les pièces inactives"
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr "Exclure les pièces inactives de la fenêtre de prévisualisation de recherche"
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr "Rechercher des catégories"
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr "Afficher les catégories de pièces dans la fenêtre de prévisualisation de recherche"
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr "Rechercher dans le stock"
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr "Afficher les pièces en stock dans la fenêtre d'aperçu de la recherche"
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr "Cacher les pièces indisponibles"
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Exclure les articles en stock qui ne sont pas disponibles de la fenêtre de prévisualisation de recherche"
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr "Chercher des Emplacements"
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr "Afficher les emplacements dans la fenêtre d'aperçu de la recherche"
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr "Rechercher les entreprises"
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr "Afficher les entreprises dans la fenêtre de prévisualisation de recherche"
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr "Rechercher les commandes de construction"
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr "Afficher les commandes de construction dans la fenêtre de prévisualisation de recherche"
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr "Rechercher des bons de commande"
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de recherche"
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr "Exclure les bons de commande inactifs"
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Exclure les commandes d’achat inactives de la fenêtre de prévisualisation de recherche"
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr "Rechercher les bons de commande"
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de la recherche"
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr "Exclure les bons de commande inactives"
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr "Exclure les bons de commande inactifs de la fenêtre de prévisualisation de recherche"
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr "Rechercher les commandes retournées"
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr "Résultats de l'aperçu de la recherche"
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr "Nombre de résultats à afficher dans chaque section de la fenêtre de prévisualisation de recherche"
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr "Recherche Regex"
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "Afficher la quantité dans les formulaires"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr "Afficher la quantité disponible dans certains formulaires"
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr "La touche Echap ferme les formulaires"
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr "Utilisez la touche Echap pour fermer les formulaires modaux"
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr "Barre de navigation fixe"
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr "La position de la barre de navigation est fixée en haut de l'écran"
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr "Format de date"
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr "Format préféré pour l'affichage des dates"
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Planification des pièces"
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr "Afficher les informations de planification des pièces"
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Inventaire des pièces"
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr "Longueur de la chaîne dans les Tableau"
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr "Limite de longueur maximale pour les chaînes affichées dans les vues de la table"
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Prix"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr "Actif"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr "Ce webhook (lien de rappel HTTP) est-il actif"
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr "Jeton"
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr "Jeton d'accès"
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr "Confidentiel"
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr "ID message"
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr "Identifiant unique pour ce message"
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr "Hôte"
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr "Hôte à partir duquel ce message a été reçu"
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr "Entête"
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr "En-tête de ce message"
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr "Corps"
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr "Corps de ce message"
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr "Endpoint à partir duquel ce message a été reçu"
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr "Le travail sur ce message est-il terminé ?"
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr "Id"
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Titre"
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr "Publié"
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "Auteur"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Résumé"
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr "Lu"
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr "Cette nouvelle a-t-elle été lue ?"
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr "Cette nouvelle a-t-elle été lue ?"
msgid "Image"
msgstr "Image"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Nouveau {verbose_name}"
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr "Une nouvelle commande a été créée et vous a été assignée"
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr "Articles reçus"
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr "Des articles d'un bon de commande ont été reçus"
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr "Erreur déclenchée par le plugin"
@@ -3572,7 +3571,7 @@ msgstr "Les champs correspondants ont échoué"
msgid "Parts imported"
msgstr "Pièces importées"
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Adresse e-mail de contact"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "Cette entreprise fabrique-t-elle des pièces?"
msgid "Default currency used for this company"
msgstr "Devise par défaut utilisée pour cette entreprise"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Société"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr "Sélectionner une entreprise"
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr "Ligne 1"
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr "Adresse"
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr "Ligne 2"
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr "Seconde ligne d'adresse"
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr "Code postal"
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr "Ville / Région"
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr "Code postal Ville / Région"
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr "État / Province"
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr "État ou province"
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr "Pays"
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr "Pays"
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr "Notes du livreur"
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr "Instructions pour le livreur"
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr "Notes pour la livraison interne"
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr "Notes internes pour la livraison"
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr "Fabricant"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Sélectionner un fabricant"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Sélectionner un fabricant"
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Pièces du fabricant"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Nom du paramètre"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Valeur"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Valeur du paramètre"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Unités"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Unités du paramètre"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr "La pièce du fabricant liée doit faire référence à la même pièce de base"
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr "La pièce du fabricant liée doit faire référence à la même pièce d
msgid "Supplier"
msgstr "Fournisseur"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Sélectionner un fournisseur"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Sélectionner un fournisseur"
msgid "SKU"
msgstr "SKU"
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr "Unité de gestion des stocks des fournisseurs"
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "Sélectionner un fabricant"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr "Lien de la pièce du fournisseur externe"
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr "Description de la pièce du fournisseur"
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Note"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "coût de base"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Frais minimums (par exemple frais de stock)"
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr "Conditionnement"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr "Conditionnement de l'article"
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr "Conditionnement de l'article"
msgid "Pack Quantity"
msgstr "Nombre de paquet"
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr "plusieurs"
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr "Commande multiple"
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr "Quantité disponible auprès du fournisseur"
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr "Disponibilité mise à jour"
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr "Date de dernière mise à jour des données de disponibilité"
@@ -4014,10 +4011,10 @@ msgstr "Télécharger l'image depuis l'URL"
msgid "Delete image"
msgstr "Supprimer image"
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Client"
msgid "Uses default currency"
msgstr "Utiliser la devise par défaut"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr "Ajouter une adresse"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Fabricants"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr "Aucune information sur le fabricant disponible"
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr "Adresses"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr "Lier le code-barres à la pièce du fournisseur"
msgid "Update Part Availability"
msgstr "Mettre à jour la disponibilité des pièces"
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr "Éléments en stock"
msgid "Supplier Part Pricing"
msgstr "Prix de la pièce du fournisseur"
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Nouveau Fournisseur"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Nouveau Fabricant"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Clients"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Nouveaux Clients"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Entreprises"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Nouvelle Entreprise"
@@ -4425,7 +4422,7 @@ msgstr "Étiquette"
msgid "Label template file"
msgstr "Fichier de modèle d'étiquette"
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Activé"
@@ -4449,7 +4446,7 @@ msgstr "Hauteur [mm]"
msgid "Label height, specified in mm"
msgstr "Hauteur de l'étiquette, spécifiée en mm"
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr "Modèle de nom de fichier"
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Filtres"
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr "Aucun bon de commande correspondant n'a été trouvé"
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr "Aucun bon de commande correspondant n'a été trouvé"
msgid "Purchase Order"
msgstr "Commande d’achat"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr "Commande d’achat"
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr "Inconnu"
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr "Devise de la commande"
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr "Lien vers une page externe"
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Date prévue pour la livraison de la commande. La commande sera en retard après cette date."
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr "Créé par"
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "Utilisateur ou groupe responsable de cette commande"
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Référence de la commande"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr "Statut de la commande d'achat"
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr "Société de laquelle les articles sont commandés"
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr "Référence du fournisseur"
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr "Code de référence de la commande fournisseur"
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr "reçu par"
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr "Date d'émission"
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr "Date d'émission de la commande"
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr "Date à laquelle la commande a été complété"
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr "La quantité doit être un nombre positif"
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr "Société à laquelle les articles sont vendus"
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr "Nom de l’expédition"
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr "expédié par"
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr "La commande ne peut pas être terminée car aucune pièce n'a été assignée"
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "La commande ne peut pas être terminée car il y a des envois incomplets"
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr "Nombre d'élement"
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr "Contexte"
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr "Prix unitaire"
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr "supprimé"
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr "Commande"
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr "Pièce fournisseur"
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr "Pièce fournisseur"
msgid "Received"
msgstr "Reçu"
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr "Nombre d'éléments reçus"
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Prix d'achat"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr "Prix d'achat unitaire"
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Où l'Acheteur veut-il stocker cet article ?"
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr "La pièce virtuelle ne peut pas être affectée à une commande"
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr "Seules les pièces vendues peuvent être attribuées à une commande"
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "Prix de vente"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr "Prix de vente unitaire"
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr "Quantité expédiée"
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr "Date d'expédition"
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr "Vérifié par"
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr "Utilisateur qui a vérifié cet envoi"
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Envoi"
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr "Numéro d'expédition"
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr "N° de suivi"
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr "Information de suivi des colis"
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr "N° de facture"
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr "Numéro de référence de la facture associée"
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr "Le colis a déjà été envoyé"
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr "L'expédition n'a pas d'articles en stock alloués"
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr "L'article de stock n'a pas été assigné"
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr "Impossible d'allouer le stock à une ligne sans pièce"
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La quantité d'allocation ne peut pas excéder la quantité en stock"
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr "Ligne"
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr "Article"
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr "La commande ne peut pas être annulée"
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr "La commande n'est pas ouverte"
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr "Devise du prix d'achat"
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr "Entrez les numéros de série pour les articles de stock entrants"
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "Code-barres"
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr "Le code-barres est déjà utilisé"
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr "Une quantité entière doit être fournie pour les pièces tracables"
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr "Entrez les numéros de série à allouer"
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr "Aucune correspondance trouvée pour les numéros de série suivants"
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr "Les numéros de série suivants sont déjà alloués"
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr "Expéditions en attente"
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr "ID de composant"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr "Nom de l'article"
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr "IPN"
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr "Révision"
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Mots-clés"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "Stock Minimum"
@@ -5496,8 +5493,8 @@ msgstr "Stock Minimum"
msgid "In Stock"
msgstr "En Stock"
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr "Pièces"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Prix Minimum"
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr "Prix Maximum"
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Catégorie de composant"
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "L'IPN doit correspondre au modèle de regex {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Nom de l'article"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr "Catégorie"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "Catégorie de la pièce"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr "Ventes multiples"
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr "Date"
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr "Notes additionnelles"
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr "Nom de test"
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Requis"
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr "Valeur requise"
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr "Données"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr "Valeur par Défaut"
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "Article du BOM"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Surplus"
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Validée"
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr "Devise d'achat de l'item"
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr "Copier l'image"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr "Copier les paramètres"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr "Base de données inconnue"
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
@@ -7261,20 +7258,19 @@ msgstr "Aucune action spécifiée"
msgid "No matching action found"
msgstr "Aucune action correspondante trouvée"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Aucune correspondance trouvée pour les données du code-barres"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Correspondance trouvée pour les données du code-barres"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr "Contributeurs d'InvenTree"
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr "Non du Plugin"
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr "Extension Intégrée"
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr "Extension"
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr "Aucun objet valide n'a été fourni au modèle"
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr "Nom du modèle"
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr "Filtres de composants"
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr "Extrait "
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr "Elément"
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr "Résultat"
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr "Propriétaire"
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr "Sélectionner un propriétaire"
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
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:676
+#: stock/models.py:706
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:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr "Numéro de série pour cet article"
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
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:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr "La quantité ne correspond pas au nombre de numéros de série"
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "Les numéros de série existent déjà"
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr "Entrez le nombre d'articles en stock à sérialiser"
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr "Entrez les numéros de série pour les nouveaux articles"
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
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:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr "Quantité requise"
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 6b9e4b6ac6..bd83361100 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "הזן תאריך סיום"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "הזן תאריך סיום"
msgid "Notes"
msgstr ""
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -103,99 +98,99 @@ msgstr "אשר סיסמה חדשה"
msgid "Old password"
msgstr ""
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "אימייל (שנית)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "אישור כתובת אימייל"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "חובה לרשום את אותו אימייל בכל פעם."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr ""
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "מספרים סידוריים לא נמצאו"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "קובץ חסר"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "חסר קישור חיצוני"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "קובץ מצורף"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "בחר קובץ לצירוף"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "בחר קובץ לצירוף"
msgid "Link"
msgstr "קישור"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "קישור חיצוני"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "הערה"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "הערת קובץ"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "משתמש"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "תאריך העלאה"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "חובה למלא שם קובץ"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "תיקיית קובץ שגויה"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "שם הקובץ מכיל תו '{c}' שאינו חוקי"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "שגיאה בשינוי שם פריט"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "בחירה שגויה"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "בחירה שגויה"
msgid "Name"
msgstr "שם"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "שם"
msgid "Description"
msgstr "תיאור"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "תיאור (לא חובה)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "מקור"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr ""
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "המספר חייב להיות תקין"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "שם קובץ"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr ""
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr ""
@@ -688,7 +683,7 @@ msgstr "הוחזר"
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "קוד מטבע לא מאושר"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "ערוך מידע אודות המשתמש"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "הגדר סיסמא"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "הסיסמאות מוכרחות להיות תואמות"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "מידע אודות המערכת"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr ""
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr ""
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "כמות"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "מספרים סידוריים"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr "לא פורטה הפעולה"
msgid "No matching action found"
msgstr "פעולה מבוקשת לא נמצאה"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/hi/LC_MESSAGES/django.po b/InvenTree/locale/hi/LC_MESSAGES/django.po
index 5595ae451e..2d7c82b980 100644
--- a/InvenTree/locale/hi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:28\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-13 01:16\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Language: hi_IN\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "तारीख दर्ज करें"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "तारीख दर्ज करें"
msgid "Notes"
msgstr ""
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -103,99 +98,99 @@ msgstr "नए पासवर्ड की पुष्टि करें"
msgid "Old password"
msgstr "पुराना पासवर्ड"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr ""
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "कनेक्शन त्रुटि"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr "ई-मेल"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr ""
msgid "Link"
msgstr ""
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr ""
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr ""
msgid "Description"
msgstr ""
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr ""
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr ""
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr ""
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr ""
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr ""
@@ -688,7 +683,7 @@ msgstr ""
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr ""
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr ""
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr ""
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po
index 8d54f2fe7c..815e7c6fee 100644
--- a/InvenTree/locale/hu/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hu/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API funkciót nem találom"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Nincs jogosultságod az adatok megtekintéséhez"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Nincs érték megadva"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "A hiba részleteit megtalálod az admin panelen"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Dátum megadása"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Dátum megadása"
msgid "Notes"
msgstr "Megjegyzések"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "A(z) '{name}' érték nem a szükséges minta szerinti"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "A megadott érték nem felel meg a szükséges mintának: "
@@ -103,99 +98,99 @@ msgstr "Új jelszó megerősítése"
msgid "Old password"
msgstr "Régi jelszó"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Email (újra)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Email cím megerősítés"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Mindig ugyanazt az email címet kell beírni."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "A megadott elsődleges email cím nem valós."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "A megadott email domain nincs jóváhagyva."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "Regisztráció le van tiltva."
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Nem megfelelő mennyiség"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Üres sorozatszám"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Duplikált sorozatszám"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Érvénytelen csoport tartomány: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Több lett megadva {g} mint amennyi szükséges lenne ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Érvénytelen csoport szekvencia: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Nem található sorozatszám"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "A megadott számú egyedi sorozatszám ({s}) meg kell egyezzen a darabszámmal ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "HTML tag-ek eltávolítása ebből az értékből"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Csatlakozási hiba"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "A kiszolgáló érvénytelen státuszkóddal válaszolt"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Kivétel történt"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "A kiszolgáló érvénytelen Content-Length értéket adott"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "A kép mérete túl nagy"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "A kép letöltés meghaladja a maximális méretet"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "A kiszolgáló üres választ adott"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "A megadott URL nem egy érvényes kép fájl"
@@ -211,64 +206,64 @@ msgstr "[{site.name}] Belépés az alkalmazásba"
msgid "Email"
msgstr "Email"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "A meta adatnak egy python dict objektumnak kell lennie"
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Plugin meta adatok"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON meta adat mező, külső pluginok számára"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Helytelenül formázott minta"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Ismeretlen formátum kulcs lett megadva"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Hiányzó formátum kulcs"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Az azonosító mező nem lehet üres"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Az azonosítónak egyeznie kell a mintával"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Azonosító szám túl nagy"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Hiányzó fájl"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Hiányzó külső link"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Melléklet"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Válaszd ki a mellekelni kívánt fájlt"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Válaszd ki a mellekelni kívánt fájlt"
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Link külső URL-re"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Megjegyzés"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Leírás, bővebb infó"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Felhasználó"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "feltöltés dátuma"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "A fájlnév nem lehet üres"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Érvénytelen melléklet mappa"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Fájlnévben érvénytelen karakter van '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Fájlnév kiterjesztése hiányzik"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Ilyen fájlnévvel már létezik melléklet"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Hiba a fájl átnevezésekor"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Érvénytelen választás"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Érvénytelen választás"
msgid "Name"
msgstr "Név"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Név"
msgid "Description"
msgstr "Leírás"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Leírás (opcionális)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "szülő"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Elérési út"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Markdown megjegyzések (opcionális)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Vonalkód adat"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Harmadik féltől származó vonalkód adat"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Vonalkód hash"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Egyedi vonalkód hash"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Létező vonalkód"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Kiszolgálóhiba"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "A kiszolgáló egy hibaüzenetet rögzített."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Érvényes számnak kell lennie"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Pénznem"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Válassz pénznemet a lehetőségek közül"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Fájlnév"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Érvénytelen érték"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Adat fájl"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Fájl kiválasztása feltöltéshez"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Nem támogatott fájltípus"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Fájl túl nagy"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Nem találhatók oszlopok a fájlban"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Nincsenek adatsorok a fájlban"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Nincs adatsor megadva"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Nincs adat oszlop megadva"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Szükséges oszlop hiányzik: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplikált oszlop: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "A távoli kép URL-je"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Képek letöltése távoli URL-ről nem engedélyezett"
@@ -639,7 +634,7 @@ msgstr "Kínai (egyszerűsített)"
msgid "Chinese (Traditional)"
msgstr "Kínai (Hagyományos)"
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Háttér folyamat ellenőrzés sikertelen"
@@ -688,7 +683,7 @@ msgstr "Visszaküldve"
msgid "In Progress"
msgstr "Folyamatban"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Visszatérítés"
msgid "Reject"
msgstr "Elutasított"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr "Érvénytelen fizikai mértékegység"
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Érvénytelen pénznem kód"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Túlszállítás nem lehet negatív"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Túlszállítás nem lehet több mint 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Érvénytelen érték a túlszállításra"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Felhasználói információ módosítása"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Jelszó beállítása"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "A jelszavaknak egyeznie kell"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Rossz jelszó lett megadva"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Rendszerinformáció"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Verzió információk"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "A gyártást be kell fejezni a törlés előtt"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "Fogyóeszköz"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "Fogyóeszköz"
msgid "Optional"
msgstr "Opcionális"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr "Követett"
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Lefoglalva"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Hibás választás a szülő gyártásra"
msgid "Build Order Reference"
msgstr "Gyártási utasítás azonosító"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Vevői rendelés azonosító"
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:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Gyártási állapot"
msgid "Build status code"
msgstr "Gyártás státusz kód"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Batch kód"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Batch kód a gyártás kimenetéhez"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Befejezés cél dátuma"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Befejezés dátuma"
@@ -1142,10 +1137,10 @@ 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:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Felhasználó vagy csoport aki felelős ezért a gyártásért"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Priorítás"
msgid "Priority of this build order"
msgstr "Gyártási utasítás priorítása"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "Projektszám"
msgid "Project code for this build order"
msgstr "Projekt kód a gyártáshoz"
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "A {build} gyártási utasítás elkészült"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Gyártási utasítás elkészült"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Nincs gyártási kimenet megadva"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Gyártási kimenet már kész"
-#: build/models.py:767
+#: build/models.py:772
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:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "Mennyiségnek nullánál többnek kell lennie"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr "A mennyiség nem lehet több mint a gyártási mennyiség"
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr "Gyártás objektum"
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr "Gyártás objektum"
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr "Gyártás objektum"
msgid "Quantity"
msgstr "Mennyiség"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr "Gyártáshoz szükséges mennyiség"
-#: build/models.py:1354
+#: build/models.py:1371
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:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Készlet túlfoglalva"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie"
-#: build/models.py:1385
+#: build/models.py:1402
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:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel"
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel"
msgid "Stock Item"
msgstr "Készlet tétel"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Forrás készlet tétel"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Beépítés ebbe"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Cél készlet tétel"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Gyártás kimenet"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "Gyártási kimenet nem egyezik a szülő gyártással"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "Kimeneti alkatrész nem egyezik a gyártási utasításban lévő alkatrésszel"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Ez a gyártási kimenet már elkészült"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "Ez a gyártási kimenet nincs teljesen lefoglalva"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Add meg a mennyiséget a gyártás kimenetéhez"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyedi követésre kötelezett alkatrészeket tartalmaz"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Sorozatszámok"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Sorozatszámok automatikus hozzárendelése"
-#: build/serializers.py:297
+#: build/serializers.py:299
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:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "A következő sorozatszámok már léteznek vagy nem megfelelőek"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "A gyártási kimenetek listáját meg kell adni"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "A gyártási kimenetek listáját meg kell adni"
msgid "Location"
msgstr "Hely"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr "Selejtezet gyártási kimenetek helye"
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr "Foglalások törlése"
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Selejtezett kimenetek foglalásainak felszabadítása"
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr "Selejtezés oka"
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "A kész gyártási kimenetek helye"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,169 +1448,173 @@ msgstr "A kész gyártási kimenetek helye"
msgid "Status"
msgstr "Állapot"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "Hiányos foglalás elfogadása"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Kimenetek befejezése akkor is ha a készlet nem\n"
"lett teljesen lefoglalva"
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr "Lefoglalt készlet levonása"
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Az összes lefoglalt tétel levonása a készletről"
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "Befejezetlen kimenetek törlése"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr "A nem befejezett gyártási kimenetek törlése"
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr "Nem engedélyezett"
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr "Gyártásban fel lett használva"
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr "Foglalás felszabadítása a készre jelentés előtt"
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr "Túlfoglalt készlet"
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Hogyan kezeljük az gyártáshoz rendelt egyéb készletet"
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr "Pár készlet tétel túl lett foglalva"
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "Kiosztatlanok elfogadása"
-#: build/serializers.py:653
+#: build/serializers.py:657
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:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "A szükséges készlet nem lett teljesen lefoglalva"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Befejezetlenek elfogadása"
-#: build/serializers.py:669
+#: build/serializers.py:673
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:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "Szükséges gyártási mennyiség nem lett elérve"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz"
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr "Gyártás sor"
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "Gyártás kimenet"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "A gyártási kimenetnek ugyanarra a gyártásra kell mutatnia"
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr "Gyártás sor tétel"
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part ugyanarra az alkatrészre kell mutasson mint a gyártási utasítás"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "A tételnek kell legyen készlete"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Rendelkezésre álló mennyiség ({q}) túllépve"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Gyártási kimenetet meg kell adni a követésre kötelezett alkatrészek lefoglalásához"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatrészek lefoglalásához"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "Ez a készlet tétel már le lett foglalva ehhez a gyártási kimenethez"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "A lefoglalandó tételeket meg kell adni"
-#: build/serializers.py:943
+#: build/serializers.py:947
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:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Hely kizárása"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Készlet tételek kizárása erről a kiválasztott helyről"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "Felcserélhető készlet"
-#: build/serializers.py:958
+#: build/serializers.py:962
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:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Készlet helyettesítés"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "Helyettesítő alkatrészek foglalásának engedélyezése"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr "Opcionális tételek"
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr "Opcionális tételek lefoglalása a gyártáshoz"
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "A gyártási utasításhoz készlet szükséges"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr "Késésben lévő gyártás"
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr "A {bo} gyártás most már késésben van"
@@ -1732,8 +1731,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Még nincs lefoglalva a szükséges készlet"
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1770,8 +1769,8 @@ msgid "Completed Outputs"
msgstr "Befejezett kimenetek"
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1821,7 +1820,7 @@ msgstr "Készlet forrás"
msgid "Stock can be taken from any available location."
msgstr "Készlet bármely rendelkezésre álló helyről felhasználható."
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Cél"
@@ -2015,1372 +2014,1372 @@ msgstr "Frissítve"
msgid "Timestamp of last update"
msgstr "Legutóbbi frissítés időpontja"
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr "Egyedi projektszám"
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr "Projekt leírása"
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny)"
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr "Beállítás értéke"
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr "A kiválasztott érték nem egy érvényes lehetőség"
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr "Az érték bináris kell legyen"
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr "Az érték egész szám kell legyen"
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "Kulcs string egyedi kell legyen"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Nincs csoport"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr "Üres domain nem engedélyezett."
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Érvénytelen domain név: {domain}"
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Újraindítás szükséges"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr "Egy olyan beállítás megváltozott ami a kiszolgáló újraindítását igényli"
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr "Kiszolgáló példány neve"
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr "String leíró a kiszolgáló példányhoz"
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr "Példány név használata"
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr "Példány név használata a címsorban"
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr "Verzió infók megjelenítésének tiltása"
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr "Verzió infók megjelenítése csak admin felhasználóknak"
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Cég neve"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Belső cégnév"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "Kiindulási URL"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "Kiindulási URL a kiszolgáló példányhoz"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Alapértelmezett pénznem"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr "Válassz alap pénznemet az ár számításokhoz"
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "nap"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Letöltés URL-ről"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Képek és fájlok letöltésének engedélyezése külső URL-ről"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr "Letöltési méret korlát"
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr "Maximum megengedett letöltési mérete a távoli képeknek"
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr "Felhasznált User-agent az URL-ről letöltéshez"
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr "A külső URL-ről letöltéshez használt user-agent felülbírálásának engedélyezése (hagyd üresen az alapértelmezéshez)"
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Megerősítés igénylése"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Kérjen felhasználói megerősítést bizonyos műveletekhez"
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr "Fa mélység"
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr "Alapértelmezett mélység a fa nézetekben. A mélyebb szintek betöltődnek ha szükségesek."
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr "Frissítés keresés gyakorisága"
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr "Milyen gyakran ellenőrizze van-e új frissítés (0=soha)"
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Automatikus biztonsági mentés"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Adatbázis és média fájlok automatikus biztonsági mentése"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Automata biztonsági mentés gyakorisága"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr "Hány naponta készüljön automatikus biztonsági mentés"
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr "Feladat törlési gyakoriság"
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr "Háttérfolyamat eredmények törlése megadott nap eltelte után"
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr "Hibanapló törlési gyakoriság"
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr "Hibanapló bejegyzések törlése megadott nap eltelte után"
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr "Értesítés törlési gyakoriság"
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr "Felhasználói értesítések törlése megadott nap eltelte után"
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Vonalkód támogatás"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr "Vonalkód beadási késleltetés"
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr "Vonalkód beadáskor a feldolgozás késleltetési ideje"
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr "Webkamerás vonalkód olvasás"
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr "Webkamerás kódolvasás engedélyezése a böngészőből"
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr "Alkatrész változatok"
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr "Alkatrész változat vagy verziószám tulajdonság használata"
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr "IPN reguláris kifejezés"
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr "Reguláris kifejezés ami illeszkedik az alkatrész IPN-re"
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Többször is előforduló IPN engedélyezése"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr "Azonos IPN használható legyen több alkatrészre is"
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "IPN szerkesztésének engedélyezése"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr "IPN megváltoztatásánsak engedélyezése az alkatrész szerkesztése közben"
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr "Alkatrészjegyzék adatok másolása"
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr "Alkatrész másoláskor az alkatrészjegyzék adatokat is másoljuk alapból"
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr "Alkatrész paraméterek másolása"
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr "Alkatrész másoláskor a paramétereket is másoljuk alapból"
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr "Alkatrész teszt adatok másolása"
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr "Alkatrész másoláskor a tesztek adatait is másoljuk alapból"
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr "Kategória paraméter sablonok másolása"
-#: common/models.py:1313
+#: common/models.py:1324
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:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Sablon"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "Alkatrészek alapból sablon alkatrészek legyenek"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Gyártmány"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből"
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Összetevő"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "Alkatrészek alapból használhatók összetevőként más alkatrészekhez"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Beszerezhető"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Alkatrészek alapból beszerezhetők legyenek"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Értékesíthető"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Alkatrészek alapból eladhatók legyenek"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Követésre kötelezett"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Alkatrészek alapból követésre kötelezettek legyenek"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Virtuális"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Alkatrészek alapból virtuálisak legyenek"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr "Importálás megjelenítése a nézetekben"
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr "Import segéd megjelenítése néhány alkatrész nézetben"
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Kapcsolódó alkatrészek megjelenítése"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Alkatrész kapcsolódó alkatrészeinek megjelenítése"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr "Kezdeti készlet adatok"
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr "Kezdeti készlet létrehozása új alkatrész felvételekor"
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Kezdeti beszállítói adatok"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr "Kezdeti beszállítói adatok létrehozása új alkatrész felvételekor"
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Alkatrész név megjelenítés formátuma"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Formátum az alkatrész név megjelenítéséhez"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr "Alkatrész kategória alapértelmezett ikon"
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr "Alkatrész kategória alapértelmezett ikon (üres ha nincs)"
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr "Csak választható mértékegységek"
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr "A megadott mértékegység csak a beállított lehetőségekből legyen elfogadva"
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr "Áraknál használt tizedesjegyek min. száma"
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr "Tizedejegyek minimális száma az árak megjelenítésekor"
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr "Áraknál használt tizedesjegyek max. száma"
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr "Tizedejegyek maximális száma az árak megjelenítésekor"
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr "Beszállítói árazás használata"
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr "Beszállítói ársávok megjelenítése az általános árkalkulációkban"
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr "Beszerzési előzmények felülbírálása"
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr "Beszerzési árelőzmények felülírják a beszállítói ársávokat"
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr "Készlet tétel ár használata"
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr "A kézzel bevitt készlet tétel árak használata az árszámításokhoz"
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr "Készlet tétel ár kora"
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr "Az ennyi napnál régebbi készlet tételek kizárása az árszámításból"
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr "Alkatrészváltozat árak használata"
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr "Alkatrészváltozat árak megjelenítése az általános árkalkulációkban"
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr "Csak az aktív változatokat"
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr "Csak az aktív alkatrészváltozatok használata az árazásban"
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr "Árazás újraszámítás gyakoriság"
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr "Árak automatikus frissítése ennyi nap után"
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Belső árak"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr "Alkatrészekhez belső ár engedélyezése"
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr "Belső ár felülbírálása"
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr "Ha elérhetőek az árkalkulációkban a belső árak lesznek alapul véve"
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Címke nyomtatás engedélyezése"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Címke nyomtatás engedélyezése a web felületről"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "Címke kép DPI"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr "Képek felbontása amik átadásra kerülnek címkenyomtató pluginoknak"
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr "Riportok engedélyezése"
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr "Riportok előállításának engedélyezése"
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Debug mód"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr "Riportok előállítása HTML formátumban (hibakereséshez)"
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Lapméret"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Alapértelmezett lapméret a PDF riportokhoz"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr "Teszt riportok engedélyezése"
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr "Teszt riportok előállításának engedélyezése"
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr "Teszt riportok hozzáadása"
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr "Teszt riport nyomtatáskor egy másolat hozzáadása a készlet tételhez"
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr "Globálisan egyedi sorozatszámok"
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr "A sorozatszámoknak egyedinek kell lennie a teljes készletre vonatkozóan"
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr "Sorozatszámok automatikus kitöltése"
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr "Sorozatszámok automatikus kitöltése a formokon"
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr "Kimerült készlet törlése"
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr "Alapértelmezett művelet mikor a készlet tétel elfogy"
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr "Batch kód sablon"
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr "Sablon a készlet tételekhez alapértelmezett batch kódok előállításához"
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr "Készlet lejárata"
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr "Készlet lejárat kezelésének engedélyezése"
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr "Lejárt készlet értékesítése"
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr "Lejárt készlet értékesítésének engedélyezése"
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr "Álló készlet ideje"
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr "Napok száma amennyivel a lejárat előtt a készlet tételeket állottnak vesszük"
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr "Lejárt készlet gyártása"
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr "Gyártás engedélyezése lejárt készletből"
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr "Készlet tulajdonosok kezelése"
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr "Tulajdonosok kezelésének engedélyezése a készlet helyekre és tételekre"
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr "Hely alapértelmezett ikon"
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr "Hely alapértelmezett ikon (üres ha nincs)"
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr "Beépített készlet megjelenítése"
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr "Beépített készlet tételek megjelenítése a készlet táblákban"
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr "Gyártási utasítás azonosító minta"
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr "Szükséges minta a gyártási utasítás azonosító mező előállításához"
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr "Visszavétel engedélyezése"
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr "Visszavételek engedélyezése a felületen"
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr "Visszavétel azonosító minta"
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr "Szükséges minta a visszavétel azonosító mező előállításához"
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr "Befejezett visszavétel szerkesztése"
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr "Visszavétel szerkesztésének engedélyezése befejezés után"
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr "Vevői rendelés azonosító minta"
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr "Szükséges minta a vevői rendelés azonosító mező előállításához"
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr "Vevői rendeléshez alapértelmezett szállítmány"
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr "Szállítmány automatikus létrehozása az új vevő rendelésekhez"
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr "Befejezett vevői rendelés szerkesztése"
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Vevői rendelések szerkesztésének engedélyezése szállítás vagy befejezés után"
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr "Beszerzési rendelés azonosító minta"
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Szükséges minta a beszerzési rendelés azonosító mező előállításához"
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr "Befejezett beszerzési rendelés szerkesztése"
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Beszérzési rendelések szerkesztésének engedélyezése kiküldés vagy befejezés után"
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr "Elfelejtett jelszó engedélyezése"
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon"
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr "Regisztráció engedélyezése"
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése a bejelentkező oldalon"
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "SSO engedélyezése"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "SSO engedélyezése a bejelentkező oldalon"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr "SSO regisztráció engedélyezése"
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése SSO-n keresztül a bejelentkező oldalon"
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Email szükséges"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr "Kötelező email megadás regisztrációkor"
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr "SSO felhasználók automatikus kitöltése"
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból"
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "Email kétszer"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr "Regisztráláskor kétszer kérdezze a felhasználó email címét"
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Jelszó kétszer"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát"
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Engedélyezett domainek"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Feliratkozás korlátozása megadott domain-ekre (vesszővel elválasztva, @-al kezdve)"
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr "Csoport regisztráláskor"
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr "Csoport amihez a frissen regisztrált felhasználók hozzá lesznek rendelve"
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr "Többfaktoros hitelesítés kényszerítése"
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk."
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr "Pluginok ellenőrzése indításkor"
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)"
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr "URL integráció engedélyezése"
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára"
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr "Navigációs integráció engedélyezése"
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr "Navigációs integráció engedélyezése a pluginok számára"
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr "App integráció engedélyezése"
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr "App hozzáadásának engedélyezése a pluginok számára"
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr "Ütemezés integráció engedélyezése"
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr "Háttérben futó feladatok hozzáadásának engedélyezése a pluginok számára"
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr "Esemény integráció engedélyezése"
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára"
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr "Projektszámok engedélyezése"
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr "Projektszámok használatának engedélyezése a projektek követéséhez"
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr "Leltár funkció"
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr "Leltár funkció engedélyezése a készlet mennyiség és érték számításhoz"
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr "Külső helyek nélkül"
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Külső helyek figyelmen kívül hagyása a leltár számításoknál"
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr "Automatikus leltár időpontja"
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr "Hány naponta történjen automatikus leltár (nulla egyenlő tiltva)"
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr "Riport törlési gyakoriság"
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "Régi leltár riportok törlése hány naponta történjen"
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny"
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr "Inaktív alkatrészek elrejtése"
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Nem aktív alkatrészek elrejtése a kezdőlapon"
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr "Értesítésre beállított alkatrészek megjelenítése"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr "Alkatrész értesítések megjelenítése a főoldalon"
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "Értesítésre beállított kategóriák megjelenítése"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon"
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Legújabb alkatrészek megjelenítése"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Legújabb alkatrészek megjelenítése a főoldalon"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr "Jóváhagyás nélküli alkatrészjegyzékek megjelenítése"
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon"
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr "Legfrissebb készlet változások megjelenítése"
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon"
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Alacsony készlet megjelenítése"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Alacsony készletek megjelenítése a főoldalon"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr "Kimerült készlet megjelenítése"
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr "Kimerült készletek megjelenítése a főoldalon"
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Gyártáshoz szükséges készlet megjelenítése"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon"
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr "Lejárt készlet megjelenítése"
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr "Lejárt készletek megjelenítése a főoldalon"
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr "Állott készlet megjelenítése"
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr "Álló készletek megjelenítése a főoldalon"
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr "Függő gyártások megjelenítése"
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon"
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr "Késésben lévő gyártások megjelenítése"
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr "Késésben lévő gyártások megjelenítése a főoldalon"
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr "Kintlévő beszerzési rendelések megjelenítése"
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon"
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr "Késésben lévő megrendelések megjelenítése"
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr "Késésben lévő megrendelések megjelenítése a főoldalon"
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr "Függő vevői rendelések megjelenítése"
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr "Függő vevői rendelések megjelenítése a főoldalon"
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr "Késésben lévő vevői rendelések megjelenítése"
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon"
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr "Függő vevői szállítmányok megjelenítése"
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr "Folyamatban lévő vevői szállítmányok megjelenítése a főoldalon"
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr "Hírek megjelenítése"
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr "Hírek megjelenítése a főoldalon"
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr "Beágyazott címke megjelenítés"
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett"
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr "Alapértelmezett címkenyomtató"
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr "Melyik címkenyomtató legyen az alapértelmezett"
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr "Beágyazott riport megjelenítés"
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "PDF riport megjelenítése a böngészőben letöltés helyett"
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr "Alkatrészek keresése"
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr "Alkatrészek megjelenítése a keresési előnézetben"
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr "Beszállítói alkatrészek keresése"
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr "Beszállítói alkatrészek megjelenítése a keresési előnézetben"
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr "Gyártói alkatrészek keresése"
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr "Gyártói alkatrészek megjelenítése a keresési előnézetben"
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr "Inaktív alkatrészek elrejtése"
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból"
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr "Kategóriák keresése"
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben"
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr "Készlet keresése"
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr "Készlet tételek megjelenítése a keresési előnézetben"
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr "Nem elérhető készlet tételek elrejtése"
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból"
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr "Helyek keresése"
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr "Készlet helyek megjelenítése a keresési előnézetben"
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr "Cégek keresése"
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr "Cégek megjelenítése a keresési előnézetben"
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr "Gyártási utasítások keresése"
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr "Gyártási utasítások megjelenítése a keresés előnézet ablakban"
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr "Beszerzési rendelések keresése"
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben"
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr "Inaktív beszerzési rendelések kihagyása"
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból"
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr "Vevői rendelések keresése"
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr "Vevői rendelések megjelenítése a keresési előnézetben"
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr "Inaktív vevői rendelések kihagyása"
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból"
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr "Visszavétel keresése"
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr "Visszavételek megjelenítése a keresés előnézet ablakban"
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr "Inaktív visszavételek kihagyása"
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr "Inaktív visszavételek kihagyása a keresési előnézet találataiból"
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr "Keresési előnézet eredményei"
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként"
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr "Regex keresés"
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr "Reguláris kifejezések engedélyezése a keresésekben"
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr "Teljes szó keresés"
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr "A keresések csak teljes szóra egyező találatokat adjanak"
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "Mennyiség megjelenítése a formokon"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon"
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr "ESC billentyű zárja be a formot"
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr "ESC billentyű használata a modális formok bezárásához"
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr "Rögzített menüsor"
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr "A menü pozíciója mindig rögzítve a lap tetején"
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr "Dátum formátum"
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr "Preferált dátum formátum a dátumok kijelzésekor"
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Alkatrész ütemezés"
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr "Alkatrész ütemezési információk megjelenítése"
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Alkatrész leltár"
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "Alkatrész leltár információk megjelenítése (ha a leltár funkció engedélyezett)"
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr "Táblázati szöveg hossz"
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr "Maximális szöveg hossz ami megjelenhet a táblázatokban"
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr "Alapértelmezett alkatrész címke sablon"
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr "Az alapértelmezetten kiválasztott alkatrész címke sablon"
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr "Alapértelmezett készlet címke sablon"
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr "Az alapértelmezetten kiválasztott készlet címke sablon"
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr "Alapértelmezett készlethely címke sablon"
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr "Az alapértelmezetten kiválasztott készlethely címke sablon"
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr "Hibariportok fogadása"
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr "Értesítések fogadása a rendszerhibákról"
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr "Ársáv mennyiség"
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Ár"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr "Egységár egy meghatározott mennyiség esetén"
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr "Végpont"
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr "Végpont ahol ez a webhook érkezik"
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr "Webhook neve"
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3389,101 +3388,101 @@ msgstr "Webhook neve"
msgid "Active"
msgstr "Aktív"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr "Aktív-e ez a webhook"
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr "Token"
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr "Token a hozzáféréshez"
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr "Titok"
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr "Megosztott titok a HMAC-hoz"
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr "Üzenet azonosító"
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr "Egyedi azonosító ehhez az üzenethez"
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr "Kiszolgáló"
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr "Kiszolgáló ahonnan ez az üzenet érkezett"
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr "Fejléc"
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr "Üzenet fejléce"
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr "Törzs"
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr "Üzenet törzse"
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr "Végpont amin ez az üzenet érkezett"
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr "Dolgozott rajta"
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr "Befejeződött a munka ezzel az üzenettel?"
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr "Id"
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Cím"
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr "Közzétéve"
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "Szerző"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Összefoglaló"
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr "Elolvasva"
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr "Elolvasva?"
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3493,56 +3492,56 @@ msgstr "Elolvasva?"
msgid "Image"
msgstr "Kép"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr "Képfájl"
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr "A mértékegységnek valós azonosítónak kell lennie"
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr "Egység neve"
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Szimbólum"
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr "Opcionális mértékegység szimbólum"
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definíció"
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr "Mértékegység definíció"
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Új {verbose_name}"
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr "Egy új megrendelés létrehozva, és hozzád rendelve"
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr "Készlet érkezett"
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr "Készlet érkezett egy beszerzési megrendeléshez"
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr "Készlet érkezett vissza egy visszavétel miatt"
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr "Plugin hiba"
@@ -3573,7 +3572,7 @@ msgstr "Mezők egyeztetése sikertelen"
msgid "Parts imported"
msgstr "Importált alkatrészek"
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3615,7 +3614,7 @@ msgid "Contact email address"
msgstr "Kapcsolattartó email címe"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3657,113 +3656,113 @@ msgstr "Gyárt ez a cég alkatrészeket?"
msgid "Default currency used for this company"
msgstr "Cég által használt alapértelmezett pénznem"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Cég"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr "Cég kiválasztása"
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr "Cím megnevezése"
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr "Címhez tartozó leírás, megnevezés"
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr "Elsődleges cím"
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr "Beállítás elsődleges címként"
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr "1. sor"
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr "Cím első sora"
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr "2. sor"
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr "Cím második sora"
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr "Irányítószám"
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr "Város/Régió"
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr "Irányítószám város/régió"
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr "Állam/Megye"
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr "Állam vagy megye"
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr "Ország"
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr "Cím országa"
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr "Megjegyzés a futárnak"
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr "Futárnak szóló megjegyzések"
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr "Belső szállítási megjegyzések"
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr "Szállítási megjegyzések belső használatra"
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr "Link a címinformációkhoz (külső)"
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Kiindulási alkatrész"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Válassz alkatrészt"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3773,12 +3772,12 @@ msgstr "Válassz alkatrészt"
msgid "Manufacturer"
msgstr "Gyártó"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Gyártó kiválasztása"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3788,71 +3787,69 @@ msgstr "Gyártó kiválasztása"
msgid "MPN"
msgstr "MPN"
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Gyártói cikkszám"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr "URL link a gyártói alkatrészhez"
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr "Gyártói alkatrész leírása"
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Gyártói alkatrész"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Paraméter neve"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Érték"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Paraméter értéke"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Mértékegység"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Paraméter mértékegység"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr "A csomagolási egységnek kompatibilisnek kell lennie az alkatrész mértékegységgel"
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr "Csomagolási mennyiségnek nullánál többnek kell lennie"
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészre kell hivatkoznia"
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3863,12 +3860,12 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr
msgid "Supplier"
msgstr "Beszállító"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Beszállító kiválasztása"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3876,54 +3873,54 @@ msgstr "Beszállító kiválasztása"
msgid "SKU"
msgstr "SKU"
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr "Beszállítói cikkszám"
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "Gyártói alkatrész kiválasztása"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr "URL link a beszállítói alkatrészhez"
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr "Beszállítói alkatrész leírása"
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Megjegyzés"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "alap költség"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimális díj (pl. tárolási díj)"
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr "Csomagolás"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr "Alkatrész csomagolás"
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3933,27 +3930,27 @@ msgstr "Alkatrész csomagolás"
msgid "Pack Quantity"
msgstr "Csomagolási mennyiség"
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Egy csomagban kiszállítható mennyiség, hagyd üresen az egyedi tételeknél."
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr "többszörös"
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr "Többszörös rendelés"
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr "Beszállítónál elérhető mennyiség"
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr "Elérhetőség frissítve"
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr "Utolsó elérhetőségi adat frissítés"
@@ -4015,10 +4012,10 @@ msgstr "Kép letöltése URL-ről"
msgid "Delete image"
msgstr "Kép törlése"
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4033,7 +4030,7 @@ msgstr "Vevő"
msgid "Uses default currency"
msgstr "Alapértelmezett pénznemet használja"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4197,7 +4194,7 @@ msgstr "Cég címei"
msgid "Add Address"
msgstr "Cím hozzáadása"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Gyártók"
@@ -4228,7 +4225,7 @@ msgid "No manufacturer information available"
msgstr "Nincs elérhető gyártói információ"
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4278,7 +4275,7 @@ msgid "Addresses"
msgstr "Címek"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4368,10 +4365,10 @@ msgstr "Vonalkód hozzárendelése a beszállítói alkatrészhez"
msgid "Update Part Availability"
msgstr "Alkatrész elérhetőség frissítése"
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4385,28 +4382,28 @@ msgstr "Készlet tételek"
msgid "Supplier Part Pricing"
msgstr "Beszállító alkatrész árazás"
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Új beszállító"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Új gyártó"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Vevők"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Új vevő"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Cégek"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Új cég"
@@ -4426,7 +4423,7 @@ msgstr "Címke"
msgid "Label template file"
msgstr "Címke sablon fájl"
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Engedélyezve"
@@ -4450,7 +4447,7 @@ msgstr "Magasság [mm]"
msgid "Label height, specified in mm"
msgstr "Címke magassága, mm-ben"
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr "Fájlnév minta"
@@ -4464,8 +4461,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr "Lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)"
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Szűrők"
@@ -4482,7 +4479,7 @@ msgstr "QR kód"
msgid "QR code"
msgstr "QR kód"
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4491,11 +4488,11 @@ msgstr "QR kód"
msgid "Total Price"
msgstr "Teljes ár"
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr "Nincs egyező beszerzési rendelés"
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4509,7 +4506,7 @@ msgstr "Nincs egyező beszerzési rendelés"
msgid "Purchase Order"
msgstr "Beszerzési rendelés"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4518,192 +4515,192 @@ msgstr "Beszerzési rendelés"
msgid "Return Order"
msgstr "Visszavétel"
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr "Ismeretlen"
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr "A rendelés teljes ára"
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr "Rendelés pénzneme"
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr "Megrendeléshez használt pénznem (hagyd üresen a cégnél alapértelmezetthez)"
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr "A kapcsolattartó nem egyezik a kiválasztott céggel"
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr "Rendelés leírása (opcionális)"
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr "Válassz projektszámot ehhez a rendeléshez"
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr "Link külső weboldalra"
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Várt teljesítési dátuma a megrendelésnek. Ezután már késésben lévőnek számít majd."
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr "Készítette"
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "Felhasználó vagy csoport aki felelőse ennek a rendelésnek"
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr "Kapcsolattartó ehhez a rendeléshez"
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr "Cég címei ehhez a rendeléshez"
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Rendelés azonosító"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr "Beszerzési rendelés állapota"
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr "Cég akitől a tételek beszerzésre kerülnek"
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr "Beszállítói azonosító"
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr "Beszállítói rendelés azonosító kód"
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr "érkeztette"
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr "Kiállítás dátuma"
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr "Kiállítás dátuma"
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr "Rendelés teljesítési dátuma"
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés beszállítójával"
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr "Mennyiség pozitív kell legyen"
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr "Cég akinek a tételek értékesítésre kerülnek"
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr "Vevői azonosító "
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr "Megrendelés azonosító kódja a vevőnél"
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr "Kiszállítás dátuma"
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr "szállította"
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr "A rendelés nem teljesíthető mivel nincs hozzárendelve alkatrész"
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr "Csak nyitott rendelés jelölhető késznek"
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "A rendelés nem jelölhető késznek mivel függő szállítmányok vannak"
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak"
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr "Tétel mennyiség"
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr "Sortétel azonosító"
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr "Sortétel megjegyzései"
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Cél dátuma ennek a sortételnek (hagyd üresen a rendelés céldátum használatához)"
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr "Sortétel leírása (opcionális)"
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr "Kontextus"
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr "További kontextus ehhez a sorhoz"
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr "Egységár"
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval"
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr "törölve"
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr "Rendelés"
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr "Beszállítói alkatrész"
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4713,342 +4710,342 @@ msgstr "Beszállítói alkatrész"
msgid "Received"
msgstr "Beérkezett"
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr "Érkezett tételek száma"
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Beszerzési ár"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr "Beszerzési egységár"
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?"
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr "Virtuális alkatrészt nem lehet vevői rendeléshez adni"
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr "Csak értékesíthető alkatrészeket lehet vevői rendeléshez adni"
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "Eladási ár"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr "Eladási egységár"
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr "Szállított mennyiség"
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr "Szállítás dátuma"
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr "Szállítási dátum"
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr "Kézbesítés dátuma"
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr "Ellenőrizte"
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt"
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Szállítmány"
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr "Szállítmány száma"
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr "Nyomkövetési szám"
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr "Szállítmány nyomkövetési információ"
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr "Számlaszám"
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr "Hozzátartozó számla referencia száma"
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr "Szállítmány már elküldve"
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket"
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr "Készlet tétel nincs hozzárendelve"
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez"
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész"
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét"
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr "Vevői rendelés nem egyezik a szállítmánnyal"
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr "Szállítmány nem egyezik a vevői rendeléssel"
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr "Sor"
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr "Vevői rendelés szállítmány azonosító"
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr "Tétel"
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr "Válaszd ki a foglalásra szánt készlet tételt"
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr "Készlet foglalási mennyiség megadása"
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr "Visszavétel azonosító"
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr "Cég akitől a tételek visszavételre kerülnek"
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr "Visszavétel állapota"
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr "Csak szériaszámos tételek rendelhetők visszaszállítási utasításhoz"
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr "Válaszd ki a vevőtől visszavenni kívánt tételt"
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr "Visszavétel dátuma"
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr "Mikor lett visszavéve a tétel"
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Kimenetel"
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr "Sortétel végső kimenetele"
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr "Sortétel visszaküldésének vagy javításának költsége"
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr "A rendelést nem lehet törölni"
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr "Rendelés lezárása teljesítetlen sortételek esetén is"
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr "A rendelésben teljesítetlen sortételek vannak"
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr "A rendelés nem nyitott"
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr "Beszérzési ár pénzneme"
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr "Beszállítói alkatrészt meg kell adni"
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr "Beszerzési rendelést meg kell adni"
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr "A beszállítónak egyeznie kell a beszerzési rendelésben lévővel"
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr "A beszerzési rendelésnek egyeznie kell a beszállítóval"
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr "Sortétel"
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr "Sortétel nem egyezik a beszerzési megrendeléssel"
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr "Válassz cél helyet a beérkezett tételeknek"
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr "Írd be a batch kódját a beérkezett tételeknek"
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr "Írd be a sorozatszámokat a beérkezett tételekhez"
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "Vonalkód"
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr "Beolvasott vonalkód"
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr "Ez a vonalkód már használva van"
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél"
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr "Sortételt meg kell adni"
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr "A cél helyet kötelező megadni"
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr "Megadott vonalkódoknak egyedieknek kel lenniük"
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr "Eladási ár pénzneme"
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr "Nincsenek szállítmány részletek megadva"
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr "Sortétel nincs hozzárendelve ehhez a rendeléshez"
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr "Mennyiség pozitív kell legyen"
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr "Írd be a sorozatszámokat a kiosztáshoz"
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr "Szállítmány kiszállítva"
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr "Szállítmány nincs hozzárendelve ehhez a rendeléshez"
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr "Nincs találat a következő sorozatszámokra"
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr "A következő sorozatszámok már ki lettek osztva"
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr "Visszavétel sortétel"
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr "Sortétel nem egyezik a visszavétellel"
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr "A sortétel már beérkezett"
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr "Csak folyamatban lévő megrendelés tételeit lehet bevételezni"
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr "Sortétel pénzneme"
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr "Késésben lévő beszerzés"
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "A {po} beszerzési rendelés most már késésben van"
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr "Késésben lévő vevői rendelés"
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "A {so} vevői rendelés most már késésben van"
@@ -5405,7 +5402,7 @@ msgid "Pending Shipments"
msgstr "Függő szállítmányok"
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Műveletek"
@@ -5435,47 +5432,47 @@ msgstr "A {part} egységára {price}-ra módosítva"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "A {part} alkatrész módosított egységára {price} mennyisége pedig {qty}"
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr "Alkatrész ID"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr "Alkatrész neve"
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr "Alkatrész leírása"
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr "IPN"
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr "Változat"
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Kulcsszavak"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr "Kategória ID"
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr "Kategória neve"
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr "Alapértelmezett készlethely ID"
@@ -5483,11 +5480,11 @@ msgstr "Alapértelmezett készlethely ID"
msgid "Default Supplier ID"
msgstr "Alapértelmezett beszállító ID"
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr "Ebből a sablonból"
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "Minimális készlet"
@@ -5497,8 +5494,8 @@ msgstr "Minimális készlet"
msgid "In Stock"
msgstr "Készleten"
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5513,28 +5510,28 @@ msgstr "Felhasználva ebben"
msgid "Building"
msgstr "Gyártásban"
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr "Minimum költség"
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr "Maximum költség"
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr "Szülő ID"
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr "Szülő neve"
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr "Kategória elérési út"
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5545,70 +5542,70 @@ msgstr "Kategória elérési út"
msgid "Parts"
msgstr "Alkatrészek"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr "Alkatrészjegyzék szint"
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr "Alkatrészjegyzék tétel ID"
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr "Szülő IPN"
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr "Alkatrész IPN"
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Minimum ár"
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr "Maximum ár"
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr "Beérkező beszerzési rendelés"
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr "Kimenő vevői rendelés"
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr "Gyártással előállított készlet"
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr "A gyártási utasításhoz szükséges készlet"
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr "Érvényes"
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr "Teljes alkatrészjegyzék jóváhagyása"
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr "Ennek az opciónak ki kll lennie választva"
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Alapértelmezett hely"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Teljes készlet"
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "Elérhető készlet"
@@ -5617,7 +5614,7 @@ msgstr "Elérhető készlet"
msgid "Input quantity for price calculation"
msgstr "Add meg a mennyiséget az árszámításhoz"
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Alkatrész kategória"
@@ -5663,62 +5660,62 @@ msgstr "Ikon (opcionális)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr "Nem lehet az alkatrészkategóriát szerkezeti kategóriává tenni, mert már vannak itt alkatrészek!"
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr "Hibás választás a szülő alkatrészre"
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "A '{p1}' alkatrész a '{p2}' alkatrészjegyzékében már szerepel (rekurzív)"
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN mezőnek egyeznie kell a '{pat}' mintával"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr "Létezik már készlet tétel ilyen a sorozatszámmal"
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr "Azonos IPN nem engedélyezett az alkatrészekre, már létezik ilyen"
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr "Ilyen nevű, IPN-ű és reviziójú alkatrész már létezik."
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Szerkezeti kategóriákhoz nem lehet alkatrészeket rendelni!"
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Alkatrész neve"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr "Sablon-e"
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr "Ez egy sablon alkatrész?"
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr "Ez az alkatrész egy másik változata?"
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr "Alkatrész leírása (opcionális)"
-#: part/models.py:872
+#: part/models.py:880
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:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5726,249 +5723,249 @@ msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredmén
msgid "Category"
msgstr "Kategória"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "Alkatrész kategória"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr "Belső cikkszám"
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)"
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr "Alapban hol tároljuk ezt az alkatrészt?"
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr "Alapértelmezett beszállító"
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr "Alapértelmezett beszállítói alkatrész"
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr "Alapértelmezett lejárat"
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr "Lejárati idő (napban) ennek az alkatrésznek a készleteire"
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr "Minimálisan megengedett készlet mennyiség"
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr "Alkatrész mértékegysége"
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr "Gyártható-e ez az alkatrész más alkatrészekből?"
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr "Felhasználható-e ez az alkatrész más alkatrészek gyártásához?"
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr "Kell-e külön követni az egyes példányait ennek az alkatrésznek?"
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr "Rendelhető-e ez az alkatrész egy külső beszállítótól?"
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr "Értékesíthető-e önmagában ez az alkatrész a vevőknek?"
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr "Aktív-e ez az alkatrész?"
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Ez egy virtuális nem megfogható alkatrész, pl. szoftver vagy licenc?"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr "Alkatrészjegyzék ellenőrző összeg"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr "Tárolt alkatrészjegyzék ellenőrző összeg"
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr "Alkatrészjegyzéket ellenőrizte"
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr "Alkatrészjegyzék ellenőrzési dátuma"
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr "Létrehozó"
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr "Felhasználó aki felelős ezért az alkatrészért"
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr "Utolsó leltár"
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr "Több értékesítése"
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr "Árszámítások gyorstárazásához használt pénznem"
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr "Minimum alkatrészjegyzék költség"
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr "Összetevők minimum költsége"
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr "Maximum alkatrészjegyzék költség"
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr "Összetevők maximum költsége"
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr "Minimum beszerzési ár"
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr "Eddigi minimum beszerzési költség"
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr "Maximum beszerzési ár"
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr "Eddigi maximum beszerzési költség"
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr "Minimum belső ár"
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr "Minimum költség a belső ársávok alapján"
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr "Maximum belső ár"
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr "Maximum költség a belső ársávok alapján"
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr "Minimum beszállítói ár"
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr "Minimum alkatrész ár a beszállítóktól"
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr "Maximum beszállítói ár"
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr "Maximum alkatrész ár a beszállítóktól"
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr "Minimum alkatrészváltozat ár"
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr "Alkatrészváltozatok számolt minimum költsége"
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr "Maximum alkatrészváltozat ár"
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr "Alkatrészváltozatok számolt maximum költsége"
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr "Számított általános minimum költség"
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr "Számított általános maximum költség"
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr "Minimum eladási ár"
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr "Minimum eladási ár az ársávok alapján"
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr "Maximum eladási ár"
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr "Maximum eladási ár az ársávok alapján"
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr "Minimum eladási költség"
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr "Eddigi minimum eladási ár"
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr "Maximum eladási költség"
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr "Eddigi maximum eladási ár"
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr "Leltározható alkatrész"
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr "Tételszám"
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr "Egyedi készlet tételek száma a leltárkor"
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr "Teljes készlet a leltárkor"
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5980,398 +5977,398 @@ msgstr "Teljes készlet a leltárkor"
msgid "Date"
msgstr "Dátum"
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr "Leltározva ekkor"
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr "További megjegyzések"
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr "Leltározta"
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr "Minimum készlet érték"
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr "Becsült minimum raktárkészlet érték"
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr "Maximum készlet érték"
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr "Becsült maximum raktárkészlet érték"
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr "Riport"
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr "Leltár riport fájl (generált)"
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr "Alkatrész szám"
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr "Leltározott alkatrészek száma"
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr "Felhasználó aki a leltár riportot kérte"
-#: part/models.py:3262
+#: part/models.py:3299
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:3279
+#: part/models.py:3316
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:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr "Teszt név"
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr "Add meg a teszt nevét"
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr "Teszt leírása"
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr "Adj hozzá egy leírást ehhez a teszthez"
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Kötelező"
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr "Szükséges-e hogy ez a teszt sikeres legyen?"
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr "Kötelező érték"
-#: part/models.py:3318
+#: part/models.py:3355
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:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr "Kötelező melléklet"
-#: part/models.py:3324
+#: part/models.py:3361
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:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége"
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei"
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr "A lehetőségek egyediek kell legyenek"
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr "A paraméter sablon nevének egyedinek kell lennie"
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr "Paraméter neve"
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr "Paraméter mértékegysége"
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr "Paraméter leírása"
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr "Jelölőnégyzet"
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr "Ez a paraméter egy jelölőnégyzet?"
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr "Lehetőségek"
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Választható lehetőségek (vesszővel elválasztva)"
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr "Hibás választás a paraméterre"
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr "Szülő alkatrész"
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr "Paraméter sablon"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr "Adat"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr "Paraméter értéke"
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr "Alapértelmezett érték"
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr "Alapértelmezett paraméter érték"
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr "Alkatrész ID vagy alkatrész név"
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr "Egyedi alkatrész ID értéke"
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr "Alkatrész IPN érték"
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr "Szint"
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr "Alkatrészjegyzék szint"
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "Alkatrészjegyzék tétel"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr "Szülő alkatrész kiválasztása"
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr "Al alkatrész"
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt"
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr "Ez az alkatrészjegyzék tétel opcionális"
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Ez az alkatrészjegyzék tétel fogyóeszköz (készlete nincs követve a gyártásban)"
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Többlet"
-#: part/models.py:3833
+#: part/models.py:3878
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:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr "Alkatrészjegyzék tétel azonosító"
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr "Alkatrészjegyzék tétel megjegyzései"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr "Ellenőrző összeg"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr "Alkatrészjegyzék sor ellenőrző összeg"
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Jóváhagyva"
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr "Ez a BOM tétel jóvá lett hagyva"
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr "Öröklődött"
-#: part/models.py:3855
+#: part/models.py:3900
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:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Változatok"
-#: part/models.py:3861
+#: part/models.py:3906
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:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
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:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr "Al alkatrészt kötelező megadni"
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr "Alkatrészjegyzék tétel helyettesítő"
-#: part/models.py:4104
+#: part/models.py:4152
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:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr "Szülő alkatrészjegyzék tétel"
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr "Helyettesítő alkatrész"
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr "1.rész"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr "2.rész"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr "Válassz kapcsolódó alkatrészt"
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr "Alkatrész kapcsolat nem hozható létre önmagával"
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr "Már létezik duplikált alkatrész kapcsolat"
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr "Beszerzési pénzneme ennek a készlet tételnek"
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr "Nincs kiválasztva alkatrész"
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr "Válassz kategóriát"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr "Eredeti alkatrész"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr "Válassz eredeti alkatrészt a másoláshoz"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr "Kép másolása"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr "Kép másolása az eredeti alkatrészről"
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr "Alkatrészjegyzék másolása"
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr "Paraméterek másolása"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr "Paraméterek másolása az eredeti alkatrészről"
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr "Megjegyzések másolása"
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr "Megjegyzések másolása az eredeti alkatrészről"
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr "Kezdeti készlet mennyiség"
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Add meg a kezdeti készlet mennyiséget. Ha nulla akkor nem lesz készlet létrehozva."
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr "Kezdeti készlet hely"
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr "Add meg a kezdeti készlet helyét"
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr "Válassz beszállítót (hagyd üresen ha nem kell létrehozni)"
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Válassz gyártót (hagyd üresen ha nem kell létrehozni)"
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr "Gyártói cikkszám"
@@ -6379,190 +6376,190 @@ msgstr "Gyártói cikkszám"
msgid "Selected company is not a valid supplier"
msgstr "A kiválasztott cég nem érvényes beszállító"
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr "A kiválasztott cég nem érvényes gyártó"
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr "Van már ilyen gyártói alkatrész"
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr "Van már ilyen beszállítói alkatrész"
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr "Alkatrész másolása"
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr "Kezdeti adatok másolása egy másik alkatrészről"
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr "Kezdeti készlet"
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr "Kezdeti készlet mennyiség létrehozása"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr "Beszállító információ"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr "Kezdeti beszállító adatok hozzáadása"
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr "Kategória paraméterek másolása"
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr "Paraméter sablonok másolása a kiválasztott alkatrész kategóriából"
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr "Leltár riport korlátozása bizonyos alkatrészre és variánsra"
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr "Leltár riport korlátozása bizonyos alkatrész kategóriára és az alatta lévőkre"
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr "Leltár riport korlátozása bizonyos készlethelyre és az alatta lévőkre"
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr "Külső készlet nélkül"
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr "Külső helyeken lévő készlet nélkül"
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr "Riport létrehozása"
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr "Riport fájl létrehozása a számított leltár adatokkal"
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr "Alaktrészek frissítése"
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr "Megadott alkatrészek frissítése a számított leltár adatokkal"
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr "Leltár funkció nincs engedélyezve"
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr "Frissítés"
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr "Alkatrész árak frissítése"
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk"
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr "Létező adat törlése"
-#: part/serializers.py:1375
+#: part/serializers.py:1384
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:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr "Örököltekkel együtt"
-#: part/serializers.py:1381
+#: part/serializers.py:1390
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:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr "Hibás sorok kihagyása"
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr "Engedély a hibás sorok kihagyására"
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr "Helyettesítő alkatrészek másolása"
-#: part/serializers.py:1393
+#: part/serializers.py:1402
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:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr "Meglévő alkatrészjegyzék törlése"
-#: part/serializers.py:1434
+#: part/serializers.py:1443
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:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr "Nincs megadva alkatrész oszlop"
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr "Több egyező alkatrész is található"
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr "Nincs egyező alkatrész"
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr "Az alkatrész nem lett összetevőként jelölve"
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr "Mennyiség nincs megadva"
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr "Érvénytelen mennyiség"
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr "Legalább egy alkatrészjegyzék tétel szükséges"
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr "Teljes mennyiség"
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr "Teljes költség min"
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr "Teljes költség max"
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr "Leltár riport rendelkezésre áll"
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr "Egy új leltár riport készen áll a letöltésre"
@@ -6778,7 +6775,7 @@ msgid "Validate BOM"
msgstr "Alkatrészjegyzék jóváhagyása"
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr "Alkatrészjegyzék tétel hozzáadása"
@@ -6962,7 +6959,7 @@ msgstr "Gyártáshoz lefoglalva"
msgid "Allocated to Sales Orders"
msgstr "Vevő rendeléshez lefoglalva"
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr "Gyártható"
@@ -7220,11 +7217,11 @@ msgstr "Alkatrész változat létrehozása"
msgid "Create a new variant part from this template"
msgstr "Új alkatrészváltozat létrehozása ebből a sablonból"
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr "Ismeretlen adatbázis"
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
@@ -7262,20 +7259,19 @@ msgstr "Nincs megadva művelet"
msgid "No matching action found"
msgstr "Nincs egyező művelet"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr "Hiányzó vonalkód adat"
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Nincs egyező vonalkód"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Egyezés vonalkódra"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr "Ez a vonalkód már egy másik tételé"
@@ -7284,52 +7280,6 @@ msgstr "Ez a vonalkód már egy másik tételé"
msgid "No match found for provided value"
msgstr "Nincs találat a megadott értékre"
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Címkenyomtatás sikertelen"
@@ -7346,8 +7296,6 @@ msgstr "Alapvető vonalkód támogatást ad"
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr "InvenTree fejlesztők"
@@ -7385,7 +7333,7 @@ msgstr "Slack bejövő webhook URL"
msgid "URL that is used to send messages to a slack channel"
msgstr "URL az üzenetek küldéséhez egy a slack channel-re"
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr "Link megnyitása"
@@ -7413,68 +7361,20 @@ msgstr "Debug mód"
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr "Debug mód engedélyezése - nyers HTML-t ad vissza PDF helyett"
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7502,43 +7402,43 @@ msgstr "PluginNeve a pluginnak"
msgid "Is the plugin active"
msgstr "Aktív-e a plugin"
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr "Beépítve"
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr "Példa plugin"
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr "Beépített plugin"
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr "Plugin"
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr "Módszer"
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr "Nincs szerző"
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "A '{p}' plugin nem kompatibilis az aktuális applikáció verzióval {v}"
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "A pluginhoz minimum {v} verzió kell"
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "A pluginhoz maximum {v} verzió kell"
@@ -7615,33 +7515,29 @@ msgstr "Tlepítés nincs megerősítve"
msgid "Either packagename of URL must be provided"
msgstr "Vagy csomag nevet vagy URL-t meg kell adni"
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr "Plugin aktiválása"
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr "Plugin bekapcsolása"
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr "Nincs érvényes objektum megadva a sablonhoz"
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "A '{template}' sablon fájl hiányzik vagy nem érhető el"
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr "Teszt riport"
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7652,107 +7548,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr "Sablon neve"
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr "Riport sablon fájl"
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr "Riport sablon leírása"
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr "Riport verziószáma (automatikusan nő)"
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr "Minta a riport fájlnevek előállításához"
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr "Riport sablon engedélyezve"
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr "Készlet lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)"
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr "Beépített tesztekkel együtt"
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr "Gyártmányba beépített készlet tételek teszt eredményeivel együtt"
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr "Gyártás szűrők"
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr "Gyártás lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok"
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr "Alkatrész szűrők"
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr "Alkatrész lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok"
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr "Megrendelés lekérdezés szűrők"
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr "Vevő rendelés lekérdezés szűrők"
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr "Visszavétel lekérdezés szűrők"
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr "Részlet"
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr "Riport részlet fájl"
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr "Részlet fájl leírása"
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr "Eszköz"
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr "Riport asset fájl"
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr "Asset fájl leírása"
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr "készlethely lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)"
@@ -7793,7 +7689,7 @@ msgstr "Összesen"
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7819,12 +7715,12 @@ msgid "Test Results"
msgstr "Teszt eredmények"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Teszt"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr "Eredmény"
@@ -7892,7 +7788,7 @@ msgstr "Beszállító neve"
msgid "Customer ID"
msgstr "Vevő ID"
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr "Beépítve ebbe"
@@ -7917,33 +7813,33 @@ msgstr "Felülvizsgálat szükséges"
msgid "Delete on Deplete"
msgstr "Törlés ha kimerül"
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr "Lejárati dátum"
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr "Külső hely"
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr "Mennyiség megadása kötelező"
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr "Egy érvényes alkatrészt meg kell adni"
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr "A megadott beszállítói alkatrész nem létezik"
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "A beszállítói alkatrészhez van megadva csomagolási mennyiség, de a use_pack_size flag nincs beállítva"
-#: stock/api.py:760
+#: stock/api.py:782
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"
@@ -7959,7 +7855,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7971,12 +7867,12 @@ msgstr "Készlet hely"
msgid "Stock Locations"
msgstr "Készlethelyek"
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr "Tulajdonos"
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr "Tulajdonos kiválasztása"
@@ -8006,221 +7902,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr "Nem lehet ezt a raktári helyet szerkezetivé tenni, mert már vannak itt tételek!"
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr "A szerkezeti raktári helyre nem lehet készletet felvenni!"
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr "Virtuális alkatrészből nem lehet készletet létrehozni"
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "A alkatrész típus ('{pf}') {pe} kell legyen"
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
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:676
+#: stock/models.py:706
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:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr "A tétel nem tartozhat saját magához"
-#: stock/models.py:704
+#: stock/models.py:734
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:718
+#: stock/models.py:748
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:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr "Szülő készlet tétel"
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr "Kiindulási alkatrész"
-#: stock/models.py:750
+#: stock/models.py:780
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:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr "Hol található ez az alkatrész?"
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
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:776
+#: stock/models.py:806
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:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr "Sorozatszám ehhez a tételhez"
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr "Batch kód ehhez a készlet tételhez"
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr "Készlet mennyiség"
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr "Forrás gyártás"
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr "Gyártás ehhez a készlet tételhez"
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr "Felhasználva ebben"
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr "Felhasználva ebben a gyártásban"
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr "Forrás beszerzési rendelés"
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr "Beszerzés ehhez a készlet tételhez"
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr "Cél vevői rendelés"
-#: stock/models.py:855
+#: stock/models.py:885
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:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr "Törlés ha kimerül"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr "Készlet tétel törlése ha kimerül"
-#: stock/models.py:889
+#: stock/models.py:919
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:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr "Alkatrésszé alakítva"
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr "Az alkatrész nem követésre kötelezett"
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr "Mennyiség egész szám kell legyen"
-#: stock/models.py:1454
+#: stock/models.py:1485
#, 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:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr "A sorozatszám egész számok listája kell legyen"
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával"
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "A sorozatszámok már léteznek"
-#: stock/models.py:1538
+#: stock/models.py:1569
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:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr "Készlet tétel beépül egy másikba"
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr "A készlet tétel más tételeket tartalmaz"
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr "Készlet tétel hozzárendelve egy vevőhöz"
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr "Készlet tétel gyártás alatt"
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr "Követésre kötelezett készlet nem vonható össze"
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr "Duplikált készlet tételek vannak"
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon"
-#: stock/models.py:1568
+#: stock/models.py:1599
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:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr "Készlet tételek állapotainak egyeznie kell"
-#: stock/models.py:1766
+#: stock/models.py:1797
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:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr "Bejegyzés megjegyzései"
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr "Ehhez a teszthez meg kell adni értéket"
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr "Ehhez a teszthez fel kell tölteni mellékletet"
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr "Teszt neve"
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr "Teszt eredménye"
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr "Teszt kimeneti értéke"
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr "Teszt eredmény melléklet"
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr "Tesztek megjegyzései"
@@ -8232,141 +8128,141 @@ msgstr "Szériaszám túl nagy"
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Csomagolási mennyiség használata: a megadott mennyiség ennyi csomag"
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Készlet tétel beszerzési ára, per darab vagy csomag"
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr "Add meg hány készlet tételt lássunk el sorozatszámmal"
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "A mennyiség nem lépheti túl a rendelkezésre álló készletet ({q})"
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr "Írd be a sorozatszámokat az új tételekhez"
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr "Cél készlet hely"
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr "Opcionális megjegyzés mező"
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez"
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr "Válaszd ki a beépítésre szánt készlet tételt"
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr "Tranzakció megjegyzés hozzáadása (opcionális)"
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr "Készlet tétel nem elérhető"
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr "A kiválasztott alkatrész nincs az alkatrészjegyzékben"
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr "Cél hely a kiszedett tételeknek"
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr "Válassz alkatrészt amire konvertáljuk a készletet"
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr "A kiválasztott alkatrész nem megfelelő a konverzióhoz"
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr "Készlet tétel hozzárendelt beszállítói alkatrésszel nem konvertálható"
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr "Cél hely a visszatérő tételeknek"
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr "Válaszd ki a státuszváltásra szánt készlet tételeket"
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr "Nincs készlet tétel kiválasztva"
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr "Az alkatrésznek értékesíthetőnek kell lennie"
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr "A tétel egy vevő rendeléshez foglalt"
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr "A tétel egy gyártási utasításhoz foglalt"
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr "Vevő akihez rendeljük a készlet tételeket"
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr "A kiválasztott cég nem egy vevő"
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr "Készlet hozzárendelés megjegyzései"
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr "A készlet tételek listáját meg kell adni"
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr "Készlet összevonás megjegyzései"
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr "Nem egyező beszállítók megengedése"
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Különböző beszállítói alkatrészekből származó készletek összevonásának engedélyezése"
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr "Nem egyező állapotok megjelenítése"
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr "Különböző állapotú készletek összevonásának engedélyezése"
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr "Legalább két készlet tételt meg kell adni"
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr "Készlet tétel elsődleges kulcs értéke"
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr "Készlet tétel státusz kódja"
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr "Készlet tranzakció megjegyzései"
@@ -9906,7 +9802,7 @@ 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:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr "Szükséges mennyiség"
@@ -10283,74 +10179,74 @@ msgstr "Készletváltozatok engedélyezve"
msgid "Substitutes"
msgstr "Helyettesítõk"
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr "Alkatrészjegyzék árazása teljes"
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr "Alkatrészjegyzék árazása nem teljes"
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr "Nincsenek árak"
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr "Nincs szabad"
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr "Változatokkal és helyettesítőkkel együtt"
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr "Változatokkal együtt"
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr "Helyettesítőkkel együtt"
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr "Fogyóeszköz tétel"
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr "Alkatrészjegyzék tétel jóváhagyása"
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr "Ez a sor jóvá lett hagyva"
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr "Helyettesítő alkatrészek szerkesztése"
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr "Alkatrészjegyzék tétel szerkesztése"
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr "Alkatrészjegyzék tétel törlése"
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr "Alkatrészjegyzék megtekintése"
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr "Nem találhatók alkatrészjegyzék tételek"
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr "Szükséges alkatrész"
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr "Örökölve a szülő alkatrészjegyzéktől"
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index c20498d91f..1e519e9342 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-13 01:16\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API endpoint tidak ditemukan"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Pengguna tidak memiliki izin untuk melihat model ini"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Nilai tidak tersedia"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Detail terkait galat dapat dilihat di panel admin"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Masukkan tanggal"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Masukkan tanggal"
msgid "Notes"
msgstr "Catatan"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Nilai yang diberikan tidak sesuai dengan pola yang ditentukan: "
@@ -103,99 +98,99 @@ msgstr "Konfirmasi sandi baru"
msgid "Old password"
msgstr "Kata sandi lama"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Email (ulang)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Konfirmasi alamat email"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Masukkan email yang sama."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Alamat surel utama yang diberikan tidak valid."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Domain surel yang diberikan tidak perbolehkan."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Jumlah yang diberikan tidak valid"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Nomor seri kosong"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Jangkauan grup tidak valid: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Urutan grup tidak valid: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Tidak ada nomor seri ditemukan"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Hapus tag-tag HTML dari nilai ini"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Ukuran gambar terlalu besar"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "URL yang diberikan bukan file gambar yang valid"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr "Surel"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "File tidak ditemukan"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Tautan eksternal tidak ditemukan"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Lampiran"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Pilih file untuk dilampirkan"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Pilih file untuk dilampirkan"
msgid "Link"
msgstr "Tautan"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Tautan menuju URL eksternal"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Komentar"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Komentar file"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Pengguna"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "tanggal diunggah"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Nama file tidak boleh kosong"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Direktori lampiran tidak valid"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Nama file mengandung karakter yang tidak diperkenankan '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Nama file tidak memiliki ekstensi"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Lampiran dengan nama file ini sudah ada"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Kesalahan merubah nama file"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Pilihan tidak valid"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Pilihan tidak valid"
msgid "Name"
msgstr "Nama"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Nama"
msgid "Description"
msgstr "Keterangan"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Keterangan (opsional)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "induk"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Direktori"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Data Barcode"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Data barcode pihak ketiga"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Barcode Hash"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Hash unik data barcode"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Sudah ada barcode yang sama"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Terjadi Kesalahan Server"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Sebuah kesalahan telah dicatat oleh server."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Harus berupa angka yang valid"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Mata Uang"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Nama File"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Nilai tidak valid"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "File data"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Pilih file untuk diunggah"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Jenis file tidak didukung"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Ukuran file terlalu besar"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Tidak ditemukan kolom dalam file"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Tidak ditemukan barisan data dalam file"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Tidak ada barisan data tersedia"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Tidak ada kolom data tersedia"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Kolom yang diperlukan kurang: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Kolom duplikat: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL file gambar external"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Unduhan gambar dari URL external tidak aktif"
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr ""
@@ -688,7 +683,7 @@ msgstr "Dikembalikan"
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Bukan kode mata uang yang valid"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Nilai kelebihan tidak boleh negatif"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Kelebihan tidak boleh melebihi 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Nilai kelebihan tidak valid"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Ubah Informasi User"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Atur Kata Sandi"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Bidang kata sandi tidak cocok"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Kata sandi yang salah"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Informasi Sistem"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Tentang InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Pesanan harus dibatalkan sebelum dapat dihapus"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Pilihan produksi induk tidak valid"
msgid "Build Order Reference"
msgstr "Referensi Order Produksi"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Produksi induk dari produksi ini"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Produksi induk dari produksi ini"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Referensi Order Penjualan"
msgid "SalesOrder to which this build is allocated"
msgstr "Order penjualan yang teralokasikan ke pesanan ini"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Status pembuatan"
msgid "Build status code"
msgstr "Kode status pembuatan"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Kode Kelompok"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Kode kelompok untuk hasil produksi ini"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Target tanggal selesai"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Target tanggal selesai produksi. Produksi akan menjadi terlambat setelah tanggal ini."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Tanggal selesai"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Pengguna yang menyerahkan order ini"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Tidak ada hasil produksi yang ditentukan"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Hasil produksi sudah selesai"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Hasil produksi tidak sesuai dengan order produksi"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "Jumlah harus lebih besar daripada nol"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "Jumlah"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Item produksi harus menentukan hasil produksi karena bagian utama telah ditandai sebagai dapat dilacak"
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Item stok teralokasikan terlalu banyak"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Jumlah yang dialokasikan harus lebih dari nol"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Jumlah harus 1 untuk stok dengan nomor seri"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr "Stok Item"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Sumber stok item"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Jumlah stok yang dialokasikan ke produksi"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Pasang ke"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Tujuan stok item"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Hasil Produksi"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "Hasil produksi tidak sesuai dengan produksi induk"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "Hasil bagian tidak sesuai dengan bagian dalam order produksi"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Hasil produksi ini sudah diselesaikan"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "Hasil produksi tidak dialokasikan sepenuhnya"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Masukkan jumlah hasil pesanan"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Jumlah bagian yang dapat dilacak harus berupa angka bulat"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Jumlah harus angka bulat karena terdapat bagian yang dapat dilacak dalam daftar barang"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Nomor Seri"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Masukkan nomor seri untuk hasil pesanan"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Alokasikan nomor seri secara otomatis"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Alokasikan item yang diperlukan dengan nomor seri yang sesuai secara otomatis"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "Nomor-nomor seri berikut sudah ada atau tidak valid"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "Daftar hasil pesanan harus disediakan"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "Daftar hasil pesanan harus disediakan"
msgid "Location"
msgstr "Lokasi"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "Lokasi hasil pesanan yang selesai"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr "Lokasi hasil pesanan yang selesai"
msgid "Status"
msgstr "Status"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "Terima Alokasi Tidak Lengkap"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "Terima Tidak Teralokasikan"
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Terima bahwa stok item tidak teralokasikan sepenuhnya ke pesanan ini"
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "Stok yang diperlukan belum teralokasikan sepenuhnya"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Terima Tidak Selesai"
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Terima bahwa jumlah hasil produksi yang diperlukan belum selesai"
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "Jumlah produksi yang diperlukan masih belum cukup"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "Order memiliki hasil produksi yang belum dilengkapi"
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "Hasil produksi"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "Hasil pesanan harus mengarah ke pesanan yang sama"
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part harus mengarah ke bagian yang sesuai dengan order produksi"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "Item harus tersedia dalam stok"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Jumlah tersedia ({q}) terlampaui"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Hasil produksi harus ditentukan untuk mengalokasikan bagian yang terlacak"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Hasil produksi tidak dapat ditentukan untuk alokasi barang yang tidak terlacak"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "Stok item ini telah dialokasikan ke hasil produksi ini"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "Item yang dialokasikan harus disediakan"
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Lokasi stok, dari mana bahan/bagian akan diambilkan (kosongkan untuk mengambil dari lokasi mana pun)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Lokasi tidak termasuk"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Jangan ambil stok item dari lokasi yang dipilih"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "Stok bergantian"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Item stok di beberapa lokasi dapat digunakan secara bergantian"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Stok pengganti"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "Izinkan alokasi bagian pengganti"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "Stok dibutuhkan untuk order produksi"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Surel diperlukan"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN harus sesuai dengan pola regex {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "Item tagihan material"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr "Tidak ada tindakan yang ditentukan"
msgid "No matching action found"
msgstr "Aksi tidak ditemukan"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr "Lampiran perlu diunggah untuk tes ini"
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 03de8119e7..78e205fcc8 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "Endpoint API non trovato"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "L'utente non ha i permessi per vedere questo modello"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "I dettagli dell'errore possono essere trovati nel pannello di amministrazione"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Inserisci la data"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Inserisci la data"
msgid "Notes"
msgstr "Note"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Il valore '{name}' non è nel formato del pattern"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Il valore fornito non corrisponde al modello richiesto: "
@@ -103,99 +98,99 @@ msgstr "Conferma la nuova password"
msgid "Old password"
msgstr "Vecchia password"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Email (ancora)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Conferma indirizzo email"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "È necessario digitare la stessa e-mail ogni volta."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "L'indirizzo email principale fornito non è valido."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "L'indirizzo di posta elettronica fornito non è approvato."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Quantità inserita non valida"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Numero seriale vuoto"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Seriale Duplicato"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Range gruppo: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "L'intervallo {g} supera la quantità consentita ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Sequenza gruppo non valida: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Nessun numero di serie trovato"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Rimuovi i tag HTML da questo valore"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Errore di connessione"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Il server ha risposto con un codice di stato non valido"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Si è verificata un'eccezione"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Il server ha risposto con valore Content-Length non valido"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Immagine troppo grande"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Il download dell'immagine ha superato la dimensione massima"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Il server remoto ha restituito una risposta vuota"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "L'URL fornito non è un file immagine valido"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr "Email"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Metadati Plugin"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "Campo di metadati JSON, da utilizzare con plugin esterni"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Schema formattato impropriamente"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Formato chiave sconosciuta"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Formato chiave mancante"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Il campo di riferimento non può essere vuoto"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Il campo deve corrispondere al modello richiesto"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Numero di riferimento troppo grande"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "File mancante"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Link esterno mancante"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Allegato"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Seleziona file da allegare"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Seleziona file da allegare"
msgid "Link"
msgstr "Collegamento"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Link a URL esterno"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Commento"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Commento del file"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Utente"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "data caricamento"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Il nome del file non deve essere vuoto"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Directory allegati non valida"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Il nome del file contiene caratteri non validi '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Nome file estensione mancante"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Esiste già un allegato con questo nome di file"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Errore nella rinominazione del file"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Scelta non valida"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Scelta non valida"
msgid "Name"
msgstr "Nome"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Nome"
msgid "Description"
msgstr "Descrizione"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Descrizione (opzionale)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "genitore"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Percorso"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Note di Markdown (opzionale)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Dati del Codice a Barre"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Dati Codice a Barre applicazioni di terze parti"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Codice a Barre"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Codice univoco del codice a barre"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Trovato codice a barre esistente"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Errore del server"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Un errore è stato loggato dal server."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Selezionare la valuta dalle opzioni disponibili"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Nome del file"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Valore non valido"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "File dati"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Seleziona un file per il caricamento"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Formato file non supportato"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "File troppo grande"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Nessun colonna trovata nel file"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Nessuna riga di dati trovata nel file"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Nessun dato fornito"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Nessuna colonna di dati fornita"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Colonna richiesta mancante: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Colonna duplicata: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL del file immagine remota"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Il download delle immagini da URL remoto non è abilitato"
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Controllo in background non riuscito"
@@ -688,7 +683,7 @@ msgstr "Reso"
msgid "In Progress"
msgstr "In corso"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Rimborso"
msgid "Reject"
msgstr "Rifiuta"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Non è un codice valuta valido"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Il sovra-valore non può essere negativo"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "L'eccesso non deve superare il 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Valore non valido per eccedenza"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Modifica informazioni utente"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Imposta Password"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Le password devono coincidere"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Password inserita non corretta"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Informazioni sistema"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Informazioni Su InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "La produzione deve essere annullata prima di poter essere eliminata"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "Consumabile"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "Consumabile"
msgid "Optional"
msgstr "Opzionale"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr "Monitorato"
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Allocato"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Scelta non valida per la produzione genitore"
msgid "Build Order Reference"
msgstr "Riferimento Ordine Di Produzione"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Ordine di produzione a cui questa produzione viene assegnata"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Numero di riferimento ordine di vendita"
msgid "SalesOrder to which this build is allocated"
msgstr "Ordine di vendita a cui questa produzione viene assegnata"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Stato Produzione"
msgid "Build status code"
msgstr "Codice stato di produzione"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Codice Lotto"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Codice del lotto per questa produzione"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Data completamento obiettivo"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Data di completamento della produzione. Dopo tale data la produzione sarà in ritardo."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Data di completamento"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Utente che ha emesso questo ordine di costruzione"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Utente o gruppo responsabile di questo ordine di produzione"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Priorità di produzione"
msgid "Priority of this build order"
msgstr "Priorità di questo ordine di produzione"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "Codice del progetto"
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "L'ordine di produzione {build} è stato completato"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "L'ordine di produzione è stato completato"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Nessun output di produzione specificato"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "La produzione è stata completata"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "L'output della produzione non corrisponde all'ordine di compilazione"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "Quantità"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "L'elemento di compilazione deve specificare un output poiché la parte principale è contrassegnata come rintracciabile"
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "L'articolo in giacenza è sovrallocato"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "La quantità di assegnazione deve essere maggiore di zero"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantità deve essere 1 per lo stock serializzato"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr "Articoli in magazzino"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Origine giacenza articolo"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Quantità di magazzino da assegnare per la produzione"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Installa in"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Destinazione articolo in giacenza"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Genera Output"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "L'output generato non corrisponde alla produzione principale"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "L'output non corrisponde alle parti dell'ordine di produzione"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Questa produzione è stata già completata"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "Questo output non è stato completamente assegnato"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Inserisci la quantità per l'output di compilazione"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Quantità totale richiesta per articoli rintracciabili"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Quantità totale richiesta, poiché la fattura dei materiali contiene articoli rintracciabili"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Codice Seriale"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Numeri di Serie Assegnazione automatica"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Assegna automaticamente gli articoli richiesti con i numeri di serie corrispondenti"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "I seguenti numeri di serie sono già esistenti o non sono validi"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "Deve essere fornito un elenco dei risultati di produzione"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "Deve essere fornito un elenco dei risultati di produzione"
msgid "Location"
msgstr "Posizione"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "Posizione per gli output di build completati"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr "Posizione per gli output di build completati"
msgid "Status"
msgstr "Stato"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "Accetta Assegnazione Incompleta"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Completa l'output se le scorte non sono state interamente assegnate"
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr "Rimuovi Giacenze Allocate"
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Detrai qualsiasi scorta che è stata già assegnata a questa produzione"
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "Rimuovi Output Incompleti"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr "Elimina gli output di produzione che non sono stati completati"
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr "Accetta come consumato da questo ordine di produzione"
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr "Non assegnare prima di aver completato questo ordine di produzione"
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr "Giacenza in eccesso assegnata"
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Come si desidera gestire gli elementi extra giacenza assegnati all'ordine di produzione"
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr "Alcuni articoli di magazzino sono stati assegnati in eccedenza"
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "Accetta Non Assegnato"
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Accetta che gli elementi in giacenza non sono stati completamente assegnati a questo ordine di produzione"
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "La giacenza richiesta non è stata completamente assegnata"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Accetta Incompleta"
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Accetta che il numero richiesto di output di produzione non sia stato completato"
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "La quantità di produzione richiesta non è stata completata"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "L'ordine di produzione ha output incompleti"
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "Genera Output"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "L'output di produzione deve puntare alla stessa produzione"
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "gli elementi degli articoli della distinta base devono puntare alla stessa parte dell'ordine di produzione"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "L'articolo deve essere disponibile"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantità disponibile ({q}) superata"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "L'output di produzione deve essere specificato per l'ubicazione delle parti tracciate"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "L'output di produzione non deve essere specificato per l'ubicazione delle parti non tracciate"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "Questa giacenza di magazzino è già stato assegnato a questa produzione"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "Deve essere indicata l'allocazione dell'articolo"
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Posizione dello stock in cui le parti devono prelevate (lasciare vuoto per prelevare da qualsiasi luogo)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Escludi Ubicazione"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Escludi gli elementi stock da questa ubicazione selezionata"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "Scorte Intercambiabili"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Gli elementi in magazzino in più sedi possono essere utilizzati in modo intercambiabile"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Sostituisci Giacenze"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "Consenti l'allocazione delle parti sostitutive"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr "Articoli Opzionali"
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr "Assegna gli elementi opzionali della distinta base all'ordine di produzione"
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "Giacenza richiesta per l'ordine di produzione"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr "Ordine di produzione in ritardo"
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr "L'ordine di produzione {bo} è in ritardo"
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Lo stock non è stato completamente assegnato a questo ordine di produzione"
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr "Outputs Completati"
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr "Risorse di magazzino"
msgid "Stock can be taken from any available location."
msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile."
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Destinazione"
@@ -2014,1372 +2013,1372 @@ msgstr "Aggiornato"
msgid "Timestamp of last update"
msgstr "Orario dell'ultimo aggiornamento"
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr "Codice unico del progetto"
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr "Descrizione del progetto"
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole)"
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr "Valore impostazioni"
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr "Il valore specificato non è un opzione valida"
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr "Il valore deve essere un valore booleano"
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr "Il valore deve essere un intero"
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "La stringa chiave deve essere univoca"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Nessun gruppo"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr "Un dominio vuoto non è consentito."
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nome dominio non valido: {domain}"
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Riavvio richiesto"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr "È stata modificata un'impostazione che richiede un riavvio del server"
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr "Nome Istanza Del Server"
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr "Descrittore stringa per l'istanza del server"
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr "Utilizza nome istanza"
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr "Usa il nome dell'istanza nella barra del titolo"
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr "Limita visualizzazione `Informazioni`"
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr "Mostra la modalità `Informazioni` solo ai superusers"
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Nome azienda"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Nome interno dell'azienda"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "URL Base"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "URL di base per l'istanza del server"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Valuta predefinita"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "giorni"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Scarica dall'URL"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Consenti il download di immagini e file remoti da URL esterno"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr "Limite Dimensione Download"
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr "Dimensione massima consentita per il download dell'immagine remota"
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr "User-agent utilizzato per scaricare dall'URL"
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr "Consenti di sovrascrivere l'user-agent utilizzato per scaricare immagini e file da URL esterno (lasciare vuoto per il predefinito)"
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Richiesta conferma"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Richiede una conferma esplicita dell'utente per una determinata azione."
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr "Profondità livelli"
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr "Profondità predefinita per la visualizzazione ad albero. I livelli più in alto possono essere caricati più lentamente quando necessari."
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr "Aggiorna intervallo di controllo"
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr "Quanto spesso controllare gli aggiornamenti (impostare a zero per disabilitare)"
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Backup automatico"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Abilita il backup automatico di database e file multimediali"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Intervallo Di Backup Automatico"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr "Definisci i giorni intercorrenti tra un backup automatico e l'altro"
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr "I risultati delle attività in background verranno eliminati dopo un determinato numero di giorni"
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr "I log di errore verranno eliminati dopo il numero specificato di giorni"
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr "Le notifiche dell'utente verranno eliminate dopo il numero di giorni specificato"
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Supporto Codice A Barre"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr "Codice a barre inserito scaduto"
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr "Tempo di ritardo di elaborazione codice a barre"
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr "Codice a Barre Supporto Webcam"
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr "Consenti la scansione del codice a barre tramite webcam nel browser"
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr "Abilita il campo revisione per l'articolo"
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr "Schema di espressione regolare per l'articolo corrispondente IPN"
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Consenti duplicati IPN"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr "Permetti a più articoli di condividere lo stesso IPN"
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "Permetti modifiche al part number interno (IPN)"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo"
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr "Copia I Dati Della distinta base dell'articolo"
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr "Copia i dati della Distinta Base predefinita quando duplichi un articolo"
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr "Copia I Dati Parametro dell'articolo"
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr "Copia i dati dei parametri di default quando si duplica un articolo"
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr "Copia I Dati dell'Articolo Test"
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr "Copia i dati di prova di default quando si duplica un articolo"
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr "Copia Template Parametri Categoria"
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Modello"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "Gli articoli sono modelli per impostazione predefinita"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Assemblaggio"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita"
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Componente"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Acquistabile"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Vendibile"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Tracciabile"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Gli articoli sono tracciabili per impostazione predefinita"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Virtuale"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Gli articoli sono virtuali per impostazione predefinita"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr "Mostra l'importazione nelle viste"
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr "Mostra la procedura guidata di importazione in alcune viste articoli"
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Mostra articoli correlati"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Visualizza parti correlate per ogni articolo"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr "Dati iniziali dello stock"
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr "Consentire la creazione di uno stock iniziale quando si aggiunge una nuova parte"
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Dati iniziali del fornitore"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr "Consentire la creazione dei dati iniziali del fornitore quando si aggiunge una nuova parte"
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Formato di visualizzazione del nome articolo"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Formato per visualizzare il nome dell'articolo"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr "Icona predefinita Categoria Articolo"
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr "Icona predefinita Categoria Articolo (vuoto significa nessuna icona)"
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr "Usa Prezzi Fornitore"
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr "Includere le discontinuità di prezzo del fornitore nei calcoli generali dei prezzi"
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr "Ignora la Cronologia Acquisti"
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr "Cronologia dei prezzi dell'ordine di acquisto del fornitore superati con discontinuità di prezzo"
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr "Utilizzare i prezzi degli articoli in stock"
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr "Utilizzare i prezzi dei dati di magazzino inseriti manualmente per il calcolo dei prezzi"
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr "Età dei prezzi degli articoli in stock"
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr "Escludere dal calcolo dei prezzi gli articoli in giacenza più vecchi di questo numero di giorni"
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr "Utilizza Variazione di Prezzo"
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr "Includi la variante dei prezzi nei calcoli dei prezzi complessivi"
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr "Solo Varianti Attive"
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr "Utilizza solo articoli di varianti attive per calcolare i prezzi delle varianti"
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr "Numero di giorni prima che il prezzo dell'articolo venga aggiornato automaticamente"
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Prezzi interni"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr "Abilita prezzi interni per gli articoli"
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr "Sovrascrivi Prezzo Interno"
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr "Se disponibile, i prezzi interni sostituiscono i calcoli della fascia di prezzo"
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Abilita stampa etichette"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Abilita la stampa di etichette dall'interfaccia web"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "Etichetta Immagine DPI"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr "Risoluzione DPI quando si generano file di immagine da fornire ai plugin di stampa per etichette"
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr "Abilita Report di Stampa"
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr "Abilita generazione di report di stampa"
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Modalità Debug"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr "Genera report in modalità debug (output HTML)"
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Dimensioni pagina"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Dimensione predefinita della pagina per i report PDF"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr "Abilita Rapporto di Prova"
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr "Abilita generazione di stampe di prova"
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr "Allega Rapporto di Prova"
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr "Quando si stampa un rapporto di prova, allegare una copia del rapporto di prova all'elemento di magazzino associato"
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr "Seriali Unici Globali"
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr "I numeri di serie per gli articoli di magazzino devono essere univoci"
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr "Auto Riempimento Numeri Seriali"
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr "Auto riempimento numeri nel modulo"
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr "Elimina scorte esaurite"
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr "Determina il comportamento predefinito quando un elemento stock è esaurito"
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr "Modello Codice a Barre"
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr "Modello per la generazione di codici batch predefiniti per gli elementi stock"
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr "Scadenza giacenza"
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr "Abilita funzionalità di scadenza della giacenza"
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr "Vendi giacenza scaduta"
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr "Consenti la vendita di stock scaduti"
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr "Tempo di Scorta del Magazzino"
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza"
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr "Crea giacenza scaduta"
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr "Permetti produzione con stock scaduto"
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr "Controllo della proprietà della giacenza"
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza"
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr "Icona Predefinita Ubicazione di Magazzino"
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr "Icona Predefinita Ubicazione di Magazzino (vuoto significa nessuna icona)"
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr "Modello Di Riferimento Ordine Di Produzione"
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr "Modello richiesto per generare il campo di riferimento ordine di produzione"
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr "Modello Di Riferimento Ordine Di Vendita"
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr "Modello richiesto per generare il campo di riferimento ordine di vendita"
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr "Spedizione Predefinita Ordine Di Vendita"
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr "Abilita la creazione di spedizioni predefinite con ordini di vendita"
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr "Modifica Ordini Di Vendita Completati"
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Consenti la modifica degli ordini di vendita dopo che sono stati spediti o completati"
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr "Modello di Riferimento Ordine D'Acquisto"
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Modello richiesto per generare il campo di riferimento ordine di acquisto"
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr "Modifica Ordini Di Acquisto Completati"
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Consenti la modifica degli ordini di acquisto dopo che sono stati spediti o completati"
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr "Abilita password dimenticata"
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr "Abilita la funzione password dimenticata nelle pagine di accesso"
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr "Abilita registrazione"
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso"
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "SSO abilitato"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "Abilita SSO nelle pagine di accesso"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr "Abilita registrazione SSO"
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Abilita l'auto-registrazione tramite SSO per gli utenti nelle pagine di accesso"
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Email richiesta"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione"
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr "Riempimento automatico degli utenti SSO"
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO"
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "Posta due volte"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr "Al momento della registrazione chiedere due volte all'utente l'indirizzo di posta elettronica"
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Password due volte"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr "Al momento della registrazione chiedere agli utenti due volte l'inserimento della password"
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Domini consentiti"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr "Gruppo iscrizione"
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr "Gruppo a cui i nuovi utenti vengono assegnati al momento della registrazione"
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr "Applica MFA"
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr "Gli utenti devono utilizzare la sicurezza a due fattori."
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr "Controlla i plugin all'avvio"
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Controlla che tutti i plugin siano installati all'avvio - abilita in ambienti contenitore"
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr "Abilita l'integrazione URL"
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr "Attiva plugin per aggiungere percorsi URL"
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr "Attiva integrazione navigazione"
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr "Abilita i plugin per l'integrazione nella navigazione"
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr "Abilita l'app integrata"
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr "Abilita plugin per aggiungere applicazioni"
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr "Abilita integrazione pianificazione"
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr "Abilita i plugin per eseguire le attività pianificate"
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr "Abilita eventi integrati"
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr "Abilita plugin per rispondere agli eventi interni"
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr "Funzionalità Dell'Inventario"
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr "Abilita la funzionalità d'inventario per la registrazione dei livelli di magazzino e il calcolo del valore di magazzino"
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr "Inventario periodico automatico"
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr "Numero di giorni tra la registrazione automatica dell'inventario (imposta 0 per disabilitare)"
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "I rapporti d'inventario verranno eliminati dopo il numero specificato di giorni"
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr "Nascondi Articoli Inattivi"
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr "Mostra articoli sottoscritti"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr "Mostra gli articoli sottoscritti nella homepage"
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "Mostra le categorie sottoscritte"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr "Mostra le categorie dei componenti sottoscritti nella homepage"
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Mostra ultimi articoli"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Mostra gli ultimi articoli sulla homepage"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr "Mostra distinta base non convalidata"
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr "Mostra le distinte base che attendono la convalida sulla homepage"
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr "Mostra le modifiche recenti alle giacenze"
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr "Mostra le giacenze modificate di recente nella homepage"
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Mostra disponibilità scarsa delle giacenze"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Mostra disponibilità scarsa degli articoli sulla homepage"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr "Mostra scorte esaurite"
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr "Mostra disponibilità scarsa delle scorte degli articoli sulla homepage"
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Mostra scorte necessarie"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr "Mostra le scorte degli articoli necessari per la produzione sulla homepage"
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr "Mostra scorte esaurite"
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr "Mostra gli articoli stock scaduti nella home page"
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr "Mostra scorte obsolete"
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr "Mostra gli elementi obsoleti esistenti sulla home page"
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr "Mostra produzioni in attesa"
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr "Mostra produzioni in attesa sulla homepage"
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr "Mostra produzioni in ritardo"
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr "Mostra produzioni in ritardo sulla home page"
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr "Mostra ordini di produzione inevasi"
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr "Mostra ordini di produzione inevasi sulla home page"
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr "Mostra Ordini di Produzione in ritardo"
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr "Mostra Ordini di Produzione in ritardo sulla home page"
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr "Mostra Ordini di Vendita inevasi"
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr "Mostra Ordini di Vendita inevasi sulla home page"
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr "Mostra Ordini di Vendita in ritardo"
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr "Mostra Ordini di Vendita in ritardo sulla home page"
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr "Mostra Notizie"
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr "Mostra notizie sulla home page"
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr "Stampante per etichette predefinita"
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr "Configura quale stampante di etichette deve essere selezionata per impostazione predefinita"
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr "Cerca Articoli"
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr "Mostra articoli della ricerca nella finestra di anteprima"
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr "Mostra articoli del fornitore nella finestra di anteprima"
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr "Cerca Articoli Produttore"
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr "Mostra articoli del produttore nella finestra di anteprima"
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr "Nascondi Articoli Inattivi"
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr "Escludi articoli inattivi dalla finestra di anteprima della ricerca"
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr "Cerca Categorie"
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr "Mostra categorie articolo nella finestra di anteprima di ricerca"
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr "Cerca Giacenze"
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr "Mostra articoli in giacenza nella finestra di anteprima della ricerca"
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr "Nascondi elementi non disponibili"
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Escludi gli elementi stock che non sono disponibili dalla finestra di anteprima di ricerca"
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr "Cerca Ubicazioni"
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr "Mostra ubicazioni delle giacenze nella finestra di anteprima di ricerca"
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr "Cerca Aziende"
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr "Mostra le aziende nella finestra di anteprima di ricerca"
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr "Cerca Ordini Di Produzione"
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr "Mostra gli ordini di produzione nella finestra di anteprima di ricerca"
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr "Cerca Ordini di Acquisto"
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr "Mostra gli ordini di acquisto nella finestra di anteprima di ricerca"
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr "Escludi Ordini D'Acquisto Inattivi"
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Escludi ordini di acquisto inattivi dalla finestra di anteprima di ricerca"
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr "Cerca Ordini Di Vendita"
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr "Visualizzazione degli ordini di vendita nella finestra di anteprima della ricerca"
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr "Escludi Ordini Di Vendita Inattivi"
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr "Escludi ordini di vendita inattivi dalla finestra di anteprima di ricerca"
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr "Cerca Ordini Di Reso"
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr "Risultati Dell'Anteprima Di Ricerca"
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr "Numero di risultati da visualizzare in ciascuna sezione della finestra di anteprima della ricerca"
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr "Ricerca con regex"
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "Mostra quantità nei moduli"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr "Visualizzare la quantità di pezzi disponibili in alcuni moduli"
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr "Il tasto Esc chiude i moduli"
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr "Utilizzare il tasto Esc per chiudere i moduli modali"
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr "Barra di navigazione fissa"
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr "La posizione della barra di navigazione è fissata nella parte superiore dello schermo"
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr "Formato Data"
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr "Formato predefinito per visualizzare le date"
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Programmazione Prodotto"
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr "Mostra informazioni sulla pianificazione del prodotto"
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Inventario Prodotto"
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "Visualizza le informazioni d'inventario dell'articolo (se la funzionalità d'inventario è abilitata)"
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr "Lunghezza Stringa Tabella"
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr "Limite massimo di lunghezza per le stringhe visualizzate nelle viste della tabella"
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr "Quantità prezzo limite"
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Prezzo"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr "Prezzo unitario in quantità specificata"
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr "Scadenza"
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr "Scadenza in cui questa notifica viene ricevuta"
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr "Nome per questa notifica"
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr "Nome per questa notifica"
msgid "Active"
msgstr "Attivo"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr "È questa notifica attiva"
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr "Token"
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr "Token per l'accesso"
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr "Segreto"
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr "Segreto condiviso per HMAC"
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr "ID Messaggio"
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr "Identificatore unico per questo messaggio"
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr "Host"
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr "Host da cui questo messaggio è stato ricevuto"
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr "Intestazione"
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr "Intestazione di questo messaggio"
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr "Contenuto"
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr "Contenuto di questo messaggio"
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr "Scadenza in cui questo messaggio è stato ricevuto"
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr "Lavorato il"
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr "Il lavoro su questo messaggio è terminato?"
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr "Id"
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Titolo"
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr "Pubblicato"
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "Autore"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Riepilogo"
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr "Letto"
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr "Queste notizie sull'elemento sono state lette?"
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr "Queste notizie sull'elemento sono state lette?"
msgid "Image"
msgstr "Immagine"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr "File immagine"
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Nuovo {verbose_name}"
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr "Un nuovo ordine è stato creato e assegnato a te"
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr "Elemento ricevuto"
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr "Gli elementi sono stati ricevuti a fronte di un ordine di acquisto"
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr "Errore generato dal plugin"
@@ -3572,7 +3571,7 @@ msgstr "Corrispondenza campi non riuscita"
msgid "Parts imported"
msgstr "Articoli importati"
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Indirizzo email"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "Questa azienda produce articoli?"
msgid "Default currency used for this company"
msgstr "Valuta predefinita utilizzata per questa azienda"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Azienda"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Articolo di base"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Seleziona articolo"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr "Seleziona articolo"
msgid "Manufacturer"
msgstr "Produttore"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Seleziona Produttore"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Seleziona Produttore"
msgid "MPN"
msgstr "Codice articolo produttore (MPN)"
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Codice articolo produttore"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr "URL dell'articolo del fornitore"
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr "Descrizione articolo costruttore"
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Codice articolo produttore"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Nome parametro"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Valore"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Valore del parametro"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Unità"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Unità parametri"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo"
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo
msgid "Supplier"
msgstr "Fornitore"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Seleziona fornitore"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Seleziona fornitore"
msgid "SKU"
msgstr "SKU"
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr "Unità di giacenza magazzino fornitore"
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "Selezionare un produttore"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr "URL dell'articolo del fornitore"
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr "Descrizione articolo fornitore"
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Nota"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "costo base"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr "Confezionamento"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr "Imballaggio del pezzo"
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr "Imballaggio del pezzo"
msgid "Pack Quantity"
msgstr "Quantità Confezione"
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr "multiplo"
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr "Ordine multiplo"
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr "Quantità disponibile dal fornitore"
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr "Disponibilità Aggiornata"
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr "Data dell’ultimo aggiornamento dei dati sulla disponibilità"
@@ -4014,10 +4011,10 @@ msgstr "Scarica immagine dall'URL"
msgid "Delete image"
msgstr "Elimina immagine"
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Cliente"
msgid "Uses default currency"
msgstr "Valuta predefinita"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Produttori"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr "Nessuna informazione sul produttore disponibile"
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr "Collega Codice a Barre con l'Articolo Fornitore"
msgid "Update Part Availability"
msgstr "Aggiorna Disponibilità Articolo"
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr "Articoli in magazzino"
msgid "Supplier Part Pricing"
msgstr "Prezzo articolo del fornitore"
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Nuovo Fornitore"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Nuovo Produttore"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Clienti"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Nuovo cliente"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Aziende"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Nuova Azienda"
@@ -4425,7 +4422,7 @@ msgstr "Etichetta"
msgid "Label template file"
msgstr "File modello etichetta"
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Abilitato"
@@ -4449,7 +4446,7 @@ msgstr "Altezza [mm]"
msgid "Label height, specified in mm"
msgstr "Larghezza dell'etichetta, specificata in mm"
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr "Formato del nome file"
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Filtri"
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr "Prezzo Totale"
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr "Nessun ordine di acquisto corrispondente trovato"
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr "Nessun ordine di acquisto corrispondente trovato"
msgid "Purchase Order"
msgstr "Ordine D'Acquisto"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr "Ordine D'Acquisto"
msgid "Return Order"
msgstr "Restituisci ordine"
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr "Sconosciuto"
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr "Prezzo totale dell'ordine"
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr "Il contatto non corrisponde all'azienda selezionata"
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr "Descrizione dell'ordine (opzionale)"
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr "Seleziona il codice del progetto per questo ordine"
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr "Collegamento a un sito web esterno"
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Data prevista per la consegna dell'ordine. L'ordine scadrà dopo questa data."
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr "Creato Da"
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "Utente o gruppo responsabile di questo ordine"
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr "Punto di contatto per questo ordine"
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Riferimento ordine"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr "Stato ordine d'acquisto"
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr "Azienda da cui sono stati ordinati gli articoli"
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr "Riferimento fornitore"
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr "Codice di riferimento ordine fornitore"
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr "ricevuto da"
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr "Data di emissione"
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr "Data di emissione ordine"
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr "Data ordine completato"
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr "Il fornitore dell'articolo deve corrispondere al fornitore dell'ordine di produzione"
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr "La quantità deve essere un numero positivo"
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr "Azienda da cui sono stati ordinati gli elementi"
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr "Riferimento Cliente "
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr "Codice di riferimento Ordine del Cliente"
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr "Data di spedizione"
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr "spedito da"
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr "L'ordine non può essere completato perché nessun articolo è stato assegnato"
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr "Solo un ordine aperto può essere contrassegnato come completo"
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "L'ordine non può essere completato in quanto ci sono spedizioni incomplete"
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr "L'ordine non può essere completato perché ci sono elementi di riga incompleti"
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr "Quantità Elementi"
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr "Riferimento Linea Elemento"
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr "Note linea elemento"
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Data di destinazione per questa voce di riga (lasciare vuoto per utilizzare la data di destinazione dall'ordine)"
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr "Contesto"
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr "Contesto aggiuntivo per questa voce"
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr "Prezzo unitario"
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr "L'articolo del fornitore deve corrispondere al fornitore"
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr "eliminato"
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr "Ordine"
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr "Articolo Fornitore"
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr "Articolo Fornitore"
msgid "Received"
msgstr "Ricevuto"
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr "Numero di elementi ricevuti"
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Prezzo di Acquisto"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr "Prezzo di acquisto unitario"
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Dove l'Acquirente desidera che questo elemento venga immagazzinato?"
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr "Un articolo virtuale non può essere assegnato ad un ordine di vendita"
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr "Solo gli articoli vendibili possono essere assegnati a un ordine di vendita"
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "Prezzo di Vendita"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr "Prezzo unitario di vendita"
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr "Quantità spedita"
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr "Data di spedizione"
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr "Verificato Da"
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr "Utente che ha controllato questa spedizione"
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Spedizione"
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr "Numero di spedizione"
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr "Numero di monitoraggio"
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr "Informazioni di monitoraggio della spedizione"
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr "Numero Fattura"
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr "Numero di riferimento per la fattura associata"
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr "La spedizione è già stata spedita"
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr "La spedizione non ha articoli di stock assegnati"
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr "L'elemento di magazzino non è stato assegnato"
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Impossibile allocare l'elemento stock a una linea con un articolo diverso"
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr "Impossibile allocare stock a una riga senza un articolo"
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza"
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr "La quantità deve essere 1 per l'elemento serializzato"
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr "L'ordine di vendita non corrisponde alla spedizione"
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr "La spedizione non corrisponde all'ordine di vendita"
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr "Linea"
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr "Riferimento della spedizione ordine di vendita"
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr "Elemento"
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr "Seleziona elemento stock da allocare"
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr "Inserisci la quantità assegnata alla giacenza"
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr "Seleziona l'elemento da restituire dal cliente"
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr "Data di ricezione"
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Risultati"
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr "L'ordine non può essere cancellato"
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr "Consenti di chiudere l'ordine con elementi di riga incompleti"
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr "L'ordine ha elementi di riga incompleti"
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr "L'ordine non è aperto"
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr "Valuta prezzo d'acquisto"
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr "L'articolo del fornitore deve essere specificato"
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr "L'ordine di acquisto deve essere specificato"
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr "Il fornitore deve essere abbinato all'ordine d'acquisto"
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr "L'ordine di acquisto deve essere abbinato al fornitore"
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr "Elemento Riga"
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr "L'elemento di riga non corrisponde all'ordine di acquisto"
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr "Inserisci il codice univoco per gli articoli in arrivo"
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr "Inserisci i numeri di serie per gli articoli stock in arrivo"
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "Codice a Barre"
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr "Codice a barre scansionato"
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr "Il codice a barre è già in uso"
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr "Deve essere fornita una quantità intera per gli articoli rintracciabili"
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr "Gli elementi di linea devono essere forniti"
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr "La destinazione deve essere specificata"
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr "I valori dei codici a barre forniti devono essere univoci"
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr "Valuta prezzo di vendita"
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr "Nessun dettaglio di spedizione fornito"
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr "L'elemento di riga non è associato a questo ordine"
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr "La quantità deve essere positiva"
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr "Inserisci i numeri di serie da assegnare"
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr "La spedizione è già stata spedita"
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr "La spedizione non è associata con questo ordine"
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr "Nessuna corrispondenza trovata per i seguenti numeri di serie"
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr "I seguenti numeri di serie sono già assegnati"
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr "Ordine D'Acquisto in ritardo"
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "L'ordine d'acquisto {po} è in ritardo"
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr "Ordini Di Vendita in ritardo"
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "L'ordine di vendita {so} è ora in ritardo"
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr "Spedizione in sospeso"
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Azioni"
@@ -5434,47 +5431,47 @@ msgstr "Aggiornato {part} prezzo unitario a {price}"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "Aggiornato {part} unità prezzo a {price} e quantità a {qty}"
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr "Codice Articolo"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr "Nome Articolo"
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr "Descrizione Articolo"
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr "IPN - Numero di riferimento interno"
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr "Revisione"
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Parole Chiave"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr "Id Categoria"
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr "Nome Categoria"
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr "Posizione Predefinita ID"
@@ -5482,11 +5479,11 @@ msgstr "Posizione Predefinita ID"
msgid "Default Supplier ID"
msgstr "ID Fornitore Predefinito"
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr "Variante Di"
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "Scorta Minima"
@@ -5496,8 +5493,8 @@ msgstr "Scorta Minima"
msgid "In Stock"
msgstr "In magazzino"
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr "Utilizzato In"
msgid "Building"
msgstr "In Costruzione"
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr "Costo Minimo"
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr "Costo Massimo"
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr "ID principale"
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr "Nome Principale"
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr "Percorso Categoria"
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr "Percorso Categoria"
msgid "Parts"
msgstr "Articoli"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr "Livello Distinta Base"
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr "ID Elemento Distinta Base"
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr "IPN Principale"
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr "IPN Articolo"
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Prezzo Minimo"
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr "Prezzo Massimo"
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr "Ordine D'Acquisto In Arrivo"
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr "Ordine di Vendita in Uscita"
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr "Giacenza prodotta dall'Ordine di Costruzione"
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr "Giacenza richiesta per l'Ordine di Produzione"
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr "Valido"
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr "Convalida l'intera Fattura dei Materiali"
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr "Questa opzione deve essere selezionata"
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Posizione Predefinita"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Giacenze Totali"
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "Disponibilità in magazzino"
@@ -5616,7 +5613,7 @@ msgstr "Disponibilità in magazzino"
msgid "Input quantity for price calculation"
msgstr "Digita la quantità per il calcolo del prezzo"
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria Articoli"
@@ -5662,62 +5659,62 @@ msgstr "Icona (facoltativa)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr "Non puoi rendere principale questa categoria di articoli perché alcuni articoli sono già assegnati!"
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr "Scelta non valida per l'articolo principale"
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "L'articolo '{p1}' è usato nella Distinta Base per '{p2}' (ricorsivo)"
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN deve corrispondere al modello regex {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr "Esiste già un elemento stock con questo numero seriale"
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo"
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr "Un articolo con questo Nome, IPN e Revisione esiste già."
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Gli articoli non possono essere assegnati a categorie articolo principali!"
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Nome articolo"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr "È Template"
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr "Quest'articolo è un articolo di template?"
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr "Questa parte è una variante di un altro articolo?"
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
msgid "Category"
msgstr "Categoria"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "Categoria articolo"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr "Numero Dell'articolo Interno"
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr "Numero di revisione o di versione"
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr "Dove viene normalmente immagazzinato questo articolo?"
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr "Fornitore predefinito"
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr "Articolo fornitore predefinito"
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr "Scadenza Predefinita"
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo"
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr "Livello minimo di giacenza consentito"
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr "Unita di misura per questo articolo"
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr "Questo articolo può essere costruito da altri articoli?"
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr "Questo articolo può essere utilizzato per costruire altri articoli?"
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr "Questo articolo ha il tracciamento per gli elementi unici?"
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr "Quest'articolo può essere acquistato da fornitori esterni?"
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr "Questo pezzo può essere venduto ai clienti?"
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr "Quest'articolo è attivo?"
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr "È una parte virtuale, come un prodotto software o una licenza?"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr "Somma di controllo Distinta Base"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr "Somma di controllo immagazzinata Distinta Base"
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr "Distinta Base controllata da"
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr "Data di verifica Distinta Base"
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr "Creazione Utente"
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr "Utente responsabile di questo articolo"
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr "Ultimo Inventario"
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr "Vendita multipla"
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr "Valuta utilizzata per calcolare i prezzi"
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr "Costo Minimo Distinta Base"
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr "Costo minimo dei componenti dell'articolo"
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr "Costo Massimo Distinta Base"
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr "Costo massimo dei componenti dell'articolo"
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr "Importo Acquisto Minimo"
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr "Costo minimo di acquisto storico"
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr "Importo massimo acquisto"
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr "Costo massimo di acquisto storico"
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr "Prezzo Interno Minimo"
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr "Costo minimo basato su interruzioni di prezzo interne"
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr "Prezzo Interno Massimo"
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr "Costo massimo basato su interruzioni di prezzo interne"
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr "Prezzo Minimo Fornitore"
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr "Prezzo minimo articolo da fornitori esterni"
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr "Prezzo Massimo Fornitore"
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni"
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr "Variazione di costo minimo"
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr "Costo minimo calcolato di variazione dell'articolo"
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr "Massima variazione di costo"
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr "Costo massimo calcolato di variazione dell'articolo"
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr "Costo minimo totale calcolato"
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr "Costo massimo totale calcolato"
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr "Prezzo Di Vendita Minimo"
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo"
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr "Prezzo Di Vendita Massimo"
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo"
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr "Costo Di Vendita Minimo"
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr "Prezzo storico minimo di vendita"
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr "Costo Di Vendita Minimo"
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr "Prezzo storico massimo di vendita"
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr "Articolo per l'inventario"
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr "Contatore Elemento"
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr "Numero di scorte individuali al momento dell'inventario"
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr "Totale delle scorte disponibili al momento dell'inventario"
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr "Totale delle scorte disponibili al momento dell'inventario"
msgid "Date"
msgstr "Data"
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr "Data in cui è stato effettuato l'inventario"
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr "Note aggiuntive"
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr "Utente che ha eseguito questo inventario"
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr "Costo Minimo Scorta"
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr "Costo minimo stimato di magazzino a disposizione"
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr "Costo Massimo Scorte"
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr "Costo massimo stimato di magazzino a disposizione"
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr "Report"
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr "File Report Inventario (generato internamente)"
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr "Conteggio Articolo"
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr "Numero di articoli oggetto d'inventario"
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr "Utente che ha richiesto questo report inventario"
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr "Il modello di prova può essere creato solo per gli articoli rintracciabili"
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr "Una prova con questo nome esiste già per questo articolo"
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr "Nome Test"
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr "Inserisci un nome per la prova"
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr "Descrizione Di Prova"
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr "Inserisci descrizione per questa prova"
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Richiesto"
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr "Questa prova è necessaria per passare?"
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr "Valore richiesto"
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr "Questa prova richiede un valore quando si aggiunge un risultato di prova?"
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr "Allegato Richiesto"
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Questa prova richiede un file allegato quando si aggiunge un risultato di prova?"
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr "Il nome del modello del parametro deve essere univoco"
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr "Nome Parametro"
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr "Descrizione del parametro"
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr "Articolo principale"
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr "Modello Parametro"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr "Dati"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr "Valore del Parametro"
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr "Valore Predefinito"
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr "Valore Parametro Predefinito"
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr "ID articolo o nome articolo"
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr "Valore ID articolo univoco"
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr "Valore IPN articolo"
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr "Livello"
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr "Livello distinta base"
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "Distinta base (Bom)"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr "Seleziona articolo principale"
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr "Articolo subordinato"
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr "Seleziona l'articolo da utilizzare nella Distinta Base"
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr "Quantità Distinta Base per questo elemento Distinta Base"
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr "Questo elemento della Distinta Base è opzionale"
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Questo elemento della Distinta Base è consumabile (non è tracciato negli ordini di produzione)"
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Eccedenza"
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Quantità stimata scarti di produzione (assoluta o percentuale)"
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr "Riferimento Elemento Distinta Base"
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr "Note Elemento Distinta Base"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr "Codice di controllo"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr "Codice di controllo Distinta Base"
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Convalidato"
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Questo elemento della Distinta Base viene ereditato dalle Distinte Base per gli articoli varianti"
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Consenti Le Varianti"
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Gli elementi in giacenza per gli articoli varianti possono essere utilizzati per questo elemento Distinta Base"
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili"
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr "L'articolo subordinato deve essere specificato"
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr "Elemento Distinta Base Sostituito"
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr "La parte sostituita non può essere la stessa dell'articolo principale"
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr "Elemento principale Distinta Base"
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr "Sostituisci l'Articolo"
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr "Articolo 1"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr "Articolo 2"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr "Seleziona Prodotto Relativo"
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr "Non si può creare una relazione tra l'articolo e sé stesso"
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr "La relazione duplicata esiste già"
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr "Valuta di acquisto di questo articolo in stock"
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr "Articolo Originale"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr "Seleziona l'articolo originale da duplicare"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr "Copia immagine"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr "Copia immagine dall'articolo originale"
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr "Copia Distinta Base"
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr "Copia fattura dei materiali dall'articolo originale"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr "Copia parametri"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr "Copia i dati dei parametri dall'articolo originale"
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr "Quantità iniziale"
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Specificare la quantità iniziale disponibile per questo Articolo. Se la quantità è zero, non viene aggiunta alcuna quantità."
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr "Ubicazione Iniziale Magazzino"
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr "Specificare l'ubicazione iniziale del magazzino per questo Articolo"
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr "Seleziona il fornitore (o lascia vuoto per saltare)"
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Seleziona il produttore (o lascia vuoto per saltare)"
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr "Codice articolo Produttore"
@@ -6378,190 +6375,190 @@ msgstr "Codice articolo Produttore"
msgid "Selected company is not a valid supplier"
msgstr "L'azienda selezionata non è un fornitore valido"
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr "L'azienda selezionata non è un produttore valido"
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr "L'articolo del produttore che corrisponde a questo MPN esiste già"
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr "L'articolo del fornitore che corrisponde a questo SKU esiste già"
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr "Duplica articolo"
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr "Copia i dati iniziali da un altro Articolo"
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr "Stock iniziale"
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr "Crea Articolo con quantità di scorta iniziale"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr "Informazioni Fornitore"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr "Aggiungi le informazioni iniziali del fornitore per questo articolo"
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr "Copia Parametri Categoria"
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr "Copia i parametri dai modelli della categoria articolo selezionata"
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr "Limitare il report d'inventario ad un articolo particolare e a eventuali articoli varianti"
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr "Limita il report d'inventario ad una particolare categoria articolo, e a eventuali categorie secondarie"
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr "Limita il report d'inventario ad una particolare ubicazione di magazzino, e a eventuali ubicazioni secondarie"
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr "Genera Report"
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr "Genera file di report contenente dati di inventario calcolati"
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr "Aggiorna Articoli"
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr "Aggiorna gli articoli specificati con i dati calcolati di inventario"
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr "La funzione Inventario non è abilitata"
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr "Aggiorna"
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr "Aggiorna i prezzi per questo articolo"
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr "Seleziona l'articolo da cui copiare la distinta base"
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr "Rimuovi Dati Esistenti"
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr "Rimuovi elementi distinta base esistenti prima di copiare"
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr "Includi Ereditato"
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr "Includi gli elementi Distinta Base ereditati da prodotti template"
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr "Salta Righe Non Valide"
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr "Abilita questa opzione per saltare le righe non valide"
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr "Copia Articoli sostitutivi"
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base"
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr "Cancella Distinta Base esistente"
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr "Rimuovi elementi distinta base esistenti prima del caricamento"
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr "Nessuna colonna articolo specificata"
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr "Trovati più articoli corrispondenti"
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr "Nessun articolo corrispondente trovato"
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr "L'articolo non è indicato come componente"
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr "Quantità non fornita"
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr "Quantità non valida"
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr "Almeno un elemento della distinta base è richiesto"
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr "Quantità Totale"
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr "Costo Minimo Totale"
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr "Costo Massimo Totale"
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr "Report Inventario Disponibile"
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr "Un nuovo report di inventario è disponibile per il download"
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr "Valida Distinta Base"
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr "Aggiungi elemento Distinta Base"
@@ -6961,7 +6958,7 @@ msgstr "Assegnato agli Ordini di Produzione"
msgid "Allocated to Sales Orders"
msgstr "Assegnato agli Ordini di Vendita"
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr "Puoi produrre"
@@ -7219,11 +7216,11 @@ msgstr "Crea nuove varianti dell'articolo"
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr "Database sconosciuto"
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
@@ -7261,20 +7258,19 @@ msgstr "Nessuna azione specificata"
msgid "No matching action found"
msgstr "Nessuna azione corrispondente trovata"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr "Codice a barre mancante"
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Nessuna corrispondenza trovata per i dati del codice a barre"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Corrispondenza trovata per i dati del codice a barre"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr "Il codice a barre corrisponde a un elemento esistente"
@@ -7283,52 +7279,6 @@ msgstr "Il codice a barre corrisponde a un elemento esistente"
msgid "No match found for provided value"
msgstr "Nessuna corrispondenza trovata per il valore fornito"
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Stampa etichetta fallita"
@@ -7345,8 +7295,6 @@ msgstr "Fornisce supporto nativo per codici a barre"
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr "Contributi d'InvenTree"
@@ -7384,7 +7332,7 @@ msgstr "Rallentamenti in entrata notifiche url"
msgid "URL that is used to send messages to a slack channel"
msgstr "Questo URL è stato utilizzato per inviare messaggi a un canale rallentato"
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr "Apri collegamento"
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr "PluginName del plugin"
msgid "Is the plugin active"
msgstr "Il plugin è attivo"
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr "Installato"
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr "Plugin di esempio"
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr "Plugin Integrato"
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr "Plugin"
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr "Metodo"
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr "Nessun autore trovato"
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr "Installazione non confermata"
msgid "Either packagename of URL must be provided"
msgstr "Deve essere fornito uno dei nomi del pacchetto URL"
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr "Nessun oggetto valido fornito nel modello"
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Il file del modello '{template}' è mancante o non esiste"
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr "Report test"
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr "Nome modello"
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr "File modello di report"
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr "Descrizione del modello report"
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr "Numero di revisione del rapporto (auto-incrementi)"
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr "Sequenza per generare i nomi dei file report"
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr "Modello report abilitato"
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr "Filtri di ricerca elementi di stock (elenco separato da virgole key=coppia di valori)"
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr "Includi Test Installati"
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr "Includi i risultati dei test per gli elementi stock installati all'interno dell'elemento assemblato"
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr "Filtri di produzione"
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr "Filtri di ricerca produzione (elenco separato da virgole key=coppia di valori"
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr "Filtri Articolo"
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr "Filtri di ricerca articolo (elenco separato da virgole key=coppia di valori"
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr "Ordine di Acquisto filtra la ricerca"
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr "Ordine di Vendita filtra la ricerca"
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr "Snippet"
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr "Report file snippet"
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr "Descrizione file snippet"
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr "Risorsa"
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr "Report file risorsa"
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr "File risorsa descrizione"
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr "Totale"
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr "Risultati Test"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr "Risultato"
@@ -7891,7 +7787,7 @@ msgstr "Nome Fornitore"
msgid "Customer ID"
msgstr "ID Cliente"
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr "Installato In"
@@ -7916,33 +7812,33 @@ msgstr "Revisione Necessaria"
msgid "Delete on Deplete"
msgstr "Elimina al esaurimento"
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr "Data di Scadenza"
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr "Ubicazione Esterna"
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr "La quantità è richiesta"
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr "Deve essere fornita un articolo valido"
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "I numeri di serie non possono essere forniti per un articolo non tracciabile"
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr "Ubicazione magazzino"
msgid "Stock Locations"
msgstr "Posizioni magazzino"
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr "Proprietario"
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr "Seleziona Owner"
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr "Non puoi rendere strutturale questa posizione di magazzino perché alcuni elementi di magazzino sono già posizionati al suo interno!"
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Gli articoli di magazzino non possono essere ubicati in posizioni di magazzino strutturali!"
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr "Non è possibile creare un elemento di magazzino per articoli virtuali"
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Il tipo di articolo ('{pf}') deve essere {pe}"
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr "La quantità deve essere 1 per elementi con un numero di serie"
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Il numero di serie non può essere impostato se la quantità è maggiore di 1"
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr "L'elemento non può appartenere a se stesso"
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr "L'elemento deve avere un riferimento di costruzione se is_building=True"
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr "Il riferimento di costruzione non punta allo stesso oggetto dell'articolo"
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr "Elemento di magazzino principale"
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr "Articolo base"
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr "Seleziona un fornitore articolo corrispondente per questo elemento di magazzino"
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr "Dove si trova questo articolo di magazzino?"
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr "Imballaggio di questo articolo di magazzino è collocato in"
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr "Questo elemento è stato installato su un altro elemento?"
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr "Numero di serie per questo elemento"
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr "Codice lotto per questo elemento di magazzino"
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr "Quantità disponibile"
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr "Genera Costruzione"
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr "Costruisci per questo elemento di magazzino"
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr "Origina Ordine di Acquisto"
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr "Ordine d'acquisto per questo articolo in magazzino"
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr "Destinazione Ordine di Vendita"
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Data di scadenza per l'elemento di magazzino. Le scorte saranno considerate scadute dopo questa data"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr "Elimina al esaurimento"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr "Cancella questo Elemento di Magazzino quando la giacenza è esaurita"
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr "Prezzo di acquisto unitario al momento dell’acquisto"
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr "Convertito in articolo"
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr "L'articolo non è impostato come tracciabile"
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr "La quantità deve essere un numero intero"
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "La quantità non deve superare la quantità disponibile ({n})"
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr "I numeri di serie devono essere numeri interi"
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr "La quantità non corrisponde ai numeri di serie"
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "Numeri di serie già esistenti"
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr "L'elemento di magazzino è stato assegnato a un ordine di vendita"
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr "L'elemento di magazzino è installato in un altro elemento"
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr "L'elemento di magazzino contiene altri elementi"
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr "L'elemento di magazzino è stato assegnato a un cliente"
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr "L'elemento di magazzino è attualmente in produzione"
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr "Il magazzino serializzato non può essere unito"
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr "Duplica elementi di magazzino"
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo"
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo fornitore"
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr "I codici di stato dello stock devono corrispondere"
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Le giacenze non possono essere spostate perché non disponibili"
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr "Note d'ingresso"
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr "Il valore deve essere fornito per questo test"
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr "L'allegato deve essere caricato per questo test"
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr "Nome Test"
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr "Risultato Test"
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr "Test valore output"
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr "Risultato della prova allegato"
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr "Note del test"
@@ -8231,141 +8127,141 @@ msgstr "Il numero di serie è troppo grande"
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr "Inserisci il numero di elementi di magazzino da serializzare"
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "La quantità non deve superare la quantità disponibile ({q})"
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr "Inserisci i numeri di serie per i nuovi elementi"
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr "Posizione magazzino di destinazione"
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr "Note opzionali elemento"
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr "Numeri di serie non possono essere assegnati a questo articolo"
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr "Seleziona elementi di magazzino da installare"
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr "Aggiungi nota di transazione (opzionale)"
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr "Elemento di magazzino non disponibile"
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr "L'articolo selezionato non è nella Fattura dei Materiali"
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr "Posizione di destinazione per gli elementi disinstallati"
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr "Seleziona l'articolo in cui convertire l'elemento di magazzino"
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr "L'articolo selezionato non è una valida opzione per la conversione"
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr "Posizione di destinazione per l'elemento restituito"
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr "L'articolo deve essere vendibile"
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr "L'elemento è assegnato a un ordine di vendita"
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr "Elemento assegnato a un ordine di costruzione"
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr "Cliente a cui assegnare elementi di magazzino"
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr "L'azienda selezionata non è un cliente"
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr "Note sull'assegnazione delle scorte"
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr "Deve essere fornito un elenco degli elementi di magazzino"
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr "Note di fusione di magazzino"
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr "Consenti fornitori non corrispondenti"
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Consenti di unire gli elementi di magazzino che hanno fornitori diversi"
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr "Consenti stato non corrispondente"
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr "Consenti di unire gli elementi di magazzino con diversi codici di stato"
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr "Devono essere riforniti almeno due elementi in magazzino"
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr "Valore di chiave primaria StockItem"
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr "Note sugli spostamenti di magazzino"
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr "I seguenti articoli sono pochi nel magazzino richiesto"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr "Quantità richiesta"
@@ -10282,74 +10178,74 @@ msgstr "Variante stock consentita"
msgid "Substitutes"
msgstr "Sostituti"
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr "I prezzi Distinta Base sono completi"
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr "I prezzi Distinta Base sono incompleti"
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr "Nessun prezzo disponibile"
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr "Nessuna Scorta Disponibile"
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr "Include variante e scorte sostitutive"
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr "Comprende varianti magazzino"
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr "Comprende le scorte sostitutive"
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr "Elementi consumabili"
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr "Convalida elemento Distinta Base"
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr "Questa linea è stata convalidata"
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr "Modifica articoli sostitutivi"
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr "Modifica elemento Distinta Base"
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr "Cancella elemento Distinta Base"
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr "Visualizza Distinta Base"
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr "Nessun elemento trovato in Distinta Base"
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr "Articolo richiesto"
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr "Ereditato dalla Distinta Base principale"
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index c2ac25cf9a..a714ff9a2b 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "APIエンドポイントが見つかりません"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "ユーザーにこのモデルを表示する権限がありません"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "値がありません"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "エラーの詳細は管理者パネルで確認できます"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "日付を入力する"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "日付を入力する"
msgid "Notes"
msgstr "メモ"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "値 '{name}' はパターン形式で表示されません"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "指定された値が必要なパターンと一致しません: "
@@ -103,99 +98,99 @@ msgstr "新しいパスワードの確認"
msgid "Old password"
msgstr "古いパスワード"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "メールアドレス(確認用)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "メールアドレスの確認"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "毎回同じメールアドレスを入力する必要があります。"
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "指定されたプライマリEメールアドレスは無効です。"
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "指定されたメールドメインは承認されていません。"
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "数量コードが無効です"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "シリアル番号は空です"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "グループ範囲が無効です: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "グループ範囲 {g} が許可された数量を超えています ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "無効なグループシーケンスです: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "シリアル番号が見つかりません"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
-msgstr "この値からHTMLタグを削除"
+msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "接続エラー"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "サーバは無効なステータスコードで応答しました"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "例外が発生しました"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "サーバーが無効なContent-Length値で応答しました"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "画像サイズが大きすぎます"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "画像のダウンロードが最大サイズを超えました"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "リモートサーバーが空のレスポンスを返しました"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "指定されたURLは有効な画像ファイルではありません"
@@ -209,66 +204,66 @@ msgstr ""
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:667
msgid "Email"
-msgstr "メールアドレス"
+msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
-msgid "Plugin Metadata"
-msgstr "プラグインメタデータ"
-
#: InvenTree/models.py:86
-msgid "JSON metadata field, for use by external plugins"
-msgstr "外部プラグインで使用するためのJSONメタデータフィールド"
+msgid "Plugin Metadata"
+msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:87
+msgid "JSON metadata field, for use by external plugins"
+msgstr ""
+
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "ファイルがありません"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "外部リンクが見つかりません。"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "添付ファイル"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "添付ファイルを選択"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "添付ファイルを選択"
msgid "Link"
msgstr "リンク"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "外部 サイト へのリンク"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "コメント:"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "ユーザー"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "アップロード日時"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "ファイル名は空欄にできません"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "添付ファイルのディレクトリが正しくありません"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "ファイル名に無効な文字'{c}'が含まれています"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "ファイル名に拡張子がありません"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "この名前の貼付ファイルは既に存在します"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "ファイル名の変更に失敗しました"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "無効な選択です"
msgid "Name"
msgstr "お名前"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,132 +395,132 @@ msgstr "お名前"
msgid "Description"
msgstr "説明"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "説明 (オプション)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "親"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr ""
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "マークダウンメモ (オプション)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "バーコード情報"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "サードパーティ製バーコードデータ"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "ファイル名"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "無効な値です。"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "データファイル"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "アップロードするファイルを選択"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "サポートされていないファイル形式"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "ファイルサイズが大きすぎます"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "ファイルに列が見つかりません"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "ファイルにデータ行がみつかりません"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "データが入力されていません"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "データ列が指定されていません"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "必須の列がありません: {name}"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "{col} 列が重複しています。"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
-msgstr "URL"
+msgstr ""
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
-msgstr "外部画像ファイルのURL"
+msgstr ""
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
-msgstr "外部URLからの画像ダウンロードは許可されていません"
+msgstr ""
#: InvenTree/settings.py:814
msgid "Czech"
-msgstr "チェコ語"
+msgstr ""
#: InvenTree/settings.py:815
msgid "Danish"
@@ -569,7 +564,7 @@ msgstr "ヘブライ語"
#: InvenTree/settings.py:825
msgid "Hindi"
-msgstr "ヒンディー語"
+msgstr ""
#: InvenTree/settings.py:826
msgid "Hungarian"
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "バックグラウンドワーカーのチェックに失敗しました"
@@ -688,7 +683,7 @@ msgstr "返品済"
msgid "In Progress"
msgstr "処理中"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,87 +842,87 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "ユーザー情報を編集"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "パスワードを設定"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
-msgstr "パスワードが一致しません"
+msgstr ""
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
-msgstr "パスワードが間違っています"
+msgstr ""
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "システム情報"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "InvenTree について"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
#: templates/js/translated/table_filters.js:215
#: templates/js/translated/table_filters.js:583
msgid "Optional"
-msgstr "オプション"
+msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -944,7 +939,7 @@ msgstr ""
#: templates/email/overdue_build_order.html:15
#: templates/js/translated/build.js:961 templates/js/translated/stock.js:2863
msgid "Build Order"
-msgstr "組立注文"
+msgstr ""
#: build/models.py:74 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
@@ -955,7 +950,7 @@ msgstr "組立注文"
#: templates/InvenTree/settings/sidebar.html:55
#: templates/js/translated/search.js:186 users/models.py:42
msgid "Build Orders"
-msgstr "組立注文"
+msgstr ""
#: build/models.py:115
msgid "Invalid choice for parent build"
@@ -965,9 +960,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1093,23 +1088,23 @@ msgstr ""
#: build/models.py:237
msgid "Build Status"
-msgstr "組立状況"
+msgstr ""
#: build/models.py:241
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr ""
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,22 +1160,22 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
-msgstr "外部リンク"
+msgstr ""
#: build/models.py:299
msgid "Build Priority"
-msgstr "組立優先度"
+msgstr ""
#: build/models.py:302
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "数量"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr "在庫商品"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
-msgstr "シリアル番号"
+msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr "ステータス"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
-msgstr "組立ライン"
+msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1687,11 +1686,11 @@ msgstr ""
#: build/templates/build/build_base.html:72
msgid "Edit Build"
-msgstr "組立を編集"
+msgstr ""
#: build/templates/build/build_base.html:74
msgid "Cancel Build"
-msgstr "組立をキャンセル"
+msgstr ""
#: build/templates/build/build_base.html:77
msgid "Duplicate Build"
@@ -1699,7 +1698,7 @@ msgstr ""
#: build/templates/build/build_base.html:80
msgid "Delete Build"
-msgstr "組立を削除"
+msgstr ""
#: build/templates/build/build_base.html:85
#: build/templates/build/build_base.html:86
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
-msgstr "外部URLからの画像ダウンロードを許可する"
+msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
-msgid "Maximum allowable download size for remote image"
-msgstr "外部URL画像の最大サイズ"
-
#: common/models.py:1155
+msgid "Maximum allowable download size for remote image"
+msgstr ""
+
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "テンプレート"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "アセンブリ"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "コンポーネント"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "パーツはデフォルトでサブコンポーネントとして使用できます"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "購入可能"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
-msgstr "販売可能"
+msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "パーツはデフォルトで販売可能です"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "追跡可能"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "パーツはデフォルトで追跡可能です"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "デバッグモード"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
-msgstr "シリアル番号を自動入力"
+msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
-msgstr "メールアドレスは必須です"
+msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
-msgstr "非アクティブな部品を非表示"
+msgstr "非アクティブなパーツを非表示"
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
-msgstr "購読中の部品を表示"
+msgstr "購読中のパーツを表示"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "購読中のカテゴリを表示"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr "メッセージ ID:"
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3611,10 +3610,10 @@ msgstr ""
#: company/models.py:122
msgid "Contact email address"
-msgstr "連絡先メールアドレス"
+msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr "製造元"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "メーカー・パーツ"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr "仕入先"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4026,13 +4023,13 @@ msgstr ""
#: templates/js/translated/stock.js:2930
#: templates/js/translated/table_filters.js:800
msgid "Customer"
-msgstr "顧客"
+msgstr ""
#: company/templates/company/company_base.html:112
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "メーカー"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4238,14 +4235,14 @@ msgstr "仕入先"
#: part/templates/part/category_sidebar.html:20
#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8
msgid "Parameters"
-msgstr "パラメータ"
+msgstr ""
#: company/templates/company/manufacturer_part.html:160
#: part/templates/part/detail.html:200
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part_parameters.html:24
msgid "New Parameter"
-msgstr "新規パラメータ"
+msgstr ""
#: company/templates/company/manufacturer_part.html:206
#: templates/js/translated/part.js:1419
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4378,34 +4375,34 @@ msgstr ""
#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737
#: users/models.py:41
msgid "Stock Items"
-msgstr "在庫商品"
+msgstr ""
#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
-msgstr "外部ページへのリンク"
+msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "購入金額"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
-msgstr "割り当てるシリアル番号を入力"
+msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
-msgstr "キーワード"
+msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
-msgstr "カテゴリID"
+msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
-msgstr "カテゴリ名"
+msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr "パーツ"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,16 +5613,16 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
-msgstr "パーツカテゴリ"
+msgstr ""
#: part/models.py:77 part/templates/part/category.html:135
#: templates/InvenTree/search.html:97 templates/js/translated/search.js:158
#: users/models.py:37
msgid "Part Categories"
-msgstr "パーツカテゴリ"
+msgstr ""
#: part/models.py:129
msgid "Default location for parts in this category"
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr "カテゴリ"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
-msgstr "パーツカテゴリ"
+msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
-msgstr "カテゴリを選択"
+msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6610,36 +6607,36 @@ msgstr ""
#: part/templates/part/category.html:59
msgid "Edit category"
-msgstr "カテゴリを編集"
+msgstr ""
#: part/templates/part/category.html:60
msgid "Edit Category"
-msgstr "カテゴリを編集"
+msgstr ""
#: part/templates/part/category.html:64
msgid "Delete category"
-msgstr "カテゴリを削除"
+msgstr ""
#: part/templates/part/category.html:65
msgid "Delete Category"
-msgstr "カテゴリを削除"
+msgstr ""
#: part/templates/part/category.html:101
msgid "Top level part category"
-msgstr "トップレベルのパーツカテゴリ"
+msgstr ""
#: part/templates/part/category.html:121 part/templates/part/category.html:206
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
-msgstr "サブカテゴリ"
+msgstr ""
#: part/templates/part/category.html:126
msgid "Parts (Including subcategories)"
-msgstr "パーツ (サブカテゴリを含む)"
+msgstr ""
#: part/templates/part/category.html:164
msgid "Create new part"
-msgstr "新規パーツを作成"
+msgstr ""
#: part/templates/part/category.html:165 templates/js/translated/bom.js:444
msgid "New Part"
@@ -6649,11 +6646,11 @@ msgstr "新規パーツ"
#: templates/InvenTree/settings/part_parameters.html:7
#: templates/InvenTree/settings/sidebar.html:49
msgid "Part Parameters"
-msgstr "パーツパラメータ"
+msgstr ""
#: part/templates/part/category.html:210
msgid "Create new part category"
-msgstr "新しいパーツカテゴリを作成"
+msgstr ""
#: part/templates/part/category.html:211
msgid "New Category"
@@ -6661,7 +6658,7 @@ msgstr "新規カテゴリ"
#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
-msgstr "パーツをインポート"
+msgstr ""
#: part/templates/part/copy_part.html:10
#, python-format
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -6983,7 +6980,7 @@ msgstr ""
#: part/templates/part/part_base.html:358
#: stock/templates/stock/item_base.html:323
msgid "Search for serial number"
-msgstr "シリアル番号で検索"
+msgstr ""
#: part/templates/part/part_base.html:446
msgid "Part QR Code"
@@ -7108,7 +7105,7 @@ msgstr ""
#: part/templates/part/prices.html:34 part/templates/part/prices.html:116
msgid "Price Category"
-msgstr "価格カテゴリ"
+msgstr ""
#: part/templates/part/prices.html:35 part/templates/part/prices.html:117
msgid "Minimum"
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr "アクションが指定されていません"
msgid "No matching action found"
msgstr "一致するアクションが見つかりませんでした"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7803,7 +7699,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:1693
#: templates/js/translated/stock.js:596
msgid "Serial Number"
-msgstr "シリアル番号"
+msgstr ""
#: report/templates/report/inventree_slr_report.html:97
msgid "Stock location items"
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,367 +7901,367 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
-msgstr "シリアル番号が既に存在します"
+msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
#: stock/serializers.py:121
msgid "Serial number is too large"
-msgstr "シリアル番号が大きすぎます"
+msgstr ""
#: stock/serializers.py:222
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
-msgstr "パーツは販売可能でなければなりません"
+msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -8935,7 +8831,7 @@ msgstr ""
#: templates/InvenTree/settings/category.html:7
msgid "Category Settings"
-msgstr "カテゴリ設定"
+msgstr ""
#: templates/InvenTree/settings/global.html:8
msgid "Server Settings"
@@ -9257,7 +9153,7 @@ msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:265
msgid "No category parameter templates found"
-msgstr "カテゴリパラメータテンプレートはありません"
+msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:288
#: templates/js/translated/part.js:1642
@@ -9271,15 +9167,15 @@ msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:306
msgid "Edit Category Parameter Template"
-msgstr "カテゴリパラメータテンプレートを編集"
+msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:333
msgid "Delete Category Parameter Template"
-msgstr "カテゴリパラメータテンプレートを削除"
+msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:368
msgid "Create Category Parameter Template"
-msgstr "カテゴリパラメータテンプレートを作成"
+msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:398
msgid "Create Part Parameter Template"
@@ -9429,7 +9325,7 @@ msgstr ""
#: templates/InvenTree/settings/user.html:110
msgid "Add Email"
-msgstr "メールアドレスを追加"
+msgstr ""
#: templates/InvenTree/settings/user.html:120
msgid "Multifactor"
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -9916,12 +9812,12 @@ msgstr ""
#: templates/email/low_stock_notification.html:9
msgid "Click on the following link to view this part"
-msgstr "このパーツを表示するには、次のリンクをクリックしてください"
+msgstr ""
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/part.js:3182
msgid "Minimum Quantity"
-msgstr "最小在庫"
+msgstr ""
#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1130
msgid "No Response"
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
-msgstr "在庫がありません"
+msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
@@ -10401,7 +10297,7 @@ msgstr ""
#: templates/js/translated/build.js:359 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:296
msgid "Latest serial number"
-msgstr "最新のシリアル番号"
+msgstr ""
#: templates/js/translated/build.js:368
msgid "The Bill of Materials contains trackable parts"
@@ -10642,7 +10538,7 @@ msgstr ""
#: templates/js/translated/build.js:2159
msgid "Progress"
-msgstr "進捗"
+msgstr ""
#: templates/js/translated/build.js:2195 templates/js/translated/stock.js:3013
msgid "No user information"
@@ -11268,7 +11164,7 @@ msgstr ""
#: templates/js/translated/part.js:121
msgid "Add Part Category"
-msgstr "パーツカテゴリを追加"
+msgstr ""
#: templates/js/translated/part.js:305
msgid "Parent part category"
@@ -11280,31 +11176,31 @@ msgstr ""
#: templates/js/translated/part.js:349
msgid "Create Part Category"
-msgstr "パーツカテゴリを作成"
+msgstr ""
#: templates/js/translated/part.js:352
msgid "Create new category after this one"
-msgstr "カテゴリ作成後に新しいパーツカテゴリーを作成"
+msgstr ""
#: templates/js/translated/part.js:353
msgid "Part category created"
-msgstr "パーツカテゴリを作成しました"
+msgstr ""
#: templates/js/translated/part.js:367
msgid "Edit Part Category"
-msgstr "パーツカテゴリを編集"
+msgstr ""
#: templates/js/translated/part.js:380
msgid "Are you sure you want to delete this part category?"
-msgstr "このパーツカテゴリを削除してもよろしいですか?"
+msgstr ""
#: templates/js/translated/part.js:385
msgid "Move to parent category"
-msgstr "親カテゴリに移動"
+msgstr ""
#: templates/js/translated/part.js:394
msgid "Delete Part Category"
-msgstr "パーツカテゴリを削除"
+msgstr ""
#: templates/js/translated/part.js:398
msgid "Action for parts in this category"
@@ -11425,7 +11321,7 @@ msgstr "購読中のパーツ"
#: templates/js/translated/part.js:807
msgid "Salable part"
-msgstr "販売可能パーツ"
+msgstr ""
#: templates/js/translated/part.js:886
msgid "Schedule generation of a new stocktake report."
@@ -11506,15 +11402,15 @@ msgstr ""
#: templates/js/translated/part.js:2195
msgid "Set the part category for the selected parts"
-msgstr "選択した部品にパーツカテゴリを設定します"
+msgstr ""
#: templates/js/translated/part.js:2200
msgid "Set Part Category"
-msgstr "パーツカテゴリを設定"
+msgstr ""
#: templates/js/translated/part.js:2230
msgid "Set category"
-msgstr "カテゴリを設定"
+msgstr ""
#: templates/js/translated/part.js:2283
msgid "parts"
@@ -11522,7 +11418,7 @@ msgstr ""
#: templates/js/translated/part.js:2379
msgid "No category"
-msgstr "カテゴリがありません"
+msgstr ""
#: templates/js/translated/part.js:2526 templates/js/translated/part.js:2656
#: templates/js/translated/stock.js:2640
@@ -11535,7 +11431,7 @@ msgstr ""
#: templates/js/translated/part.js:2640
msgid "No subcategories found"
-msgstr "サブカテゴリがありません"
+msgstr ""
#: templates/js/translated/part.js:2676 templates/js/translated/stock.js:2660
msgid "Display as tree"
@@ -11543,7 +11439,7 @@ msgstr ""
#: templates/js/translated/part.js:2756
msgid "Load Subcategories"
-msgstr "サブカテゴリを読み込み"
+msgstr ""
#: templates/js/translated/part.js:2772
msgid "Subscribed category"
@@ -12307,11 +12203,11 @@ msgstr ""
#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598
msgid "Enter serial number"
-msgstr "シリアル番号を入力"
+msgstr ""
#: templates/js/translated/stock.js:614
msgid "Enter a serial number"
-msgstr "シリアル番号を入力"
+msgstr ""
#: templates/js/translated/stock.js:634
msgid "No matching serial number"
@@ -12729,7 +12625,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:279
#: templates/js/translated/table_filters.js:707
msgid "Include subcategories"
-msgstr "サブカテゴリを含む"
+msgstr ""
#: templates/js/translated/table_filters.js:287
#: templates/js/translated/table_filters.js:755
@@ -12766,7 +12662,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:383
#: templates/js/translated/table_filters.js:384
msgid "Serial number"
-msgstr "シリアル番号"
+msgstr ""
#: templates/js/translated/table_filters.js:314
#: templates/js/translated/table_filters.js:405
@@ -12885,7 +12781,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:708
msgid "Include parts in subcategories"
-msgstr "サブカテゴリのパーツを含む"
+msgstr ""
#: templates/js/translated/table_filters.js:713
msgid "Show active parts"
@@ -13176,7 +13072,7 @@ msgstr ""
#: templates/stats.html:75
msgid "Email Settings"
-msgstr "メール設定"
+msgstr ""
#: templates/stats.html:78
msgid "Email settings not configured"
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index a5fa333a6b..7b39a3ff67 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API endpoint 없음"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "이 모델을 볼 수 있는 권한이 없습니다."
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "오류 세부 정보는 관리자 패널에서 찾을 수 있습니다."
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "날짜 입력"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "날짜 입력"
msgid "Notes"
msgstr "메모"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -103,99 +98,99 @@ msgstr "새 비밀번호 확인"
msgid "Old password"
msgstr "이전 암호"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "이메일 (다시 입력)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "이메일 주소 확인"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr ""
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr "이메일"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "첨부파일"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "첨부할 파일을 선택하세요"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "첨부할 파일을 선택하세요"
msgid "Link"
msgstr "링크"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "외부 URL로 링크"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "사용자"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "업로드 날짜"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "파일명은 비워둘 수 없습니다"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "파일명에 허용되지 않은 문자 '{c}'가 포함되어 있습니다"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "같은 이름의 첨부파일이 이미 존재합니다"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "파일 이름 바꾸기 오류"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr ""
msgid "Name"
msgstr "이름"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "이름"
msgid "Description"
msgstr "설명"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "설명 (선택 사항)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr ""
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr ""
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "바코드 해시"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "유효한 숫자여야 합니다"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "파일명"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "파일이 너무 큽니다"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr ""
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr ""
@@ -688,7 +683,7 @@ msgstr ""
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "사용자 정보 수정"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "비밀번호 설정"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "비밀번호가 일치해야 합니다"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "시스템 정보"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr ""
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr ""
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "수량 값은 0보다 커야 합니다"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "수량"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "일련번호"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr "위치"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr "상태"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "재시작 필요"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "회사명"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "기본 통화"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "URL에서 다운로드"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "바코드 지원"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "구입 가능"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "판매 가능"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "디버그 모드"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "페이지 크기"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "PDF 보고서 기본 페이지 크기"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "SSO 활성화"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "로그인 페이지에서 SSO 활성화"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "이메일 필요"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "두 번 보내기"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "작성자"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr "이미지"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "회사"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr "URL에서 이미지 다운로드"
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "고객"
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "신규 고객"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "새 회사"
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr "높이 [mm]"
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "바코드"
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr "이미 사용 중인 바코드입니다"
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr "데이터"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr "이미지 복사"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "일련번호가 이미 존재합니다"
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 3aacdbd350..a8f5cbfb63 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API eindpunt niet gevonden"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Gebruiker heeft geen rechten om dit model te bekijken"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Geen waarde opgegeven"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Error details kunnen worden gevonden in het admin scherm"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Voer datum in"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Voer datum in"
msgid "Notes"
msgstr "Opmerkingen"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Waarde '{name}' verschijnt niet in patroonformaat"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Opgegeven waarde komt niet overeen met vereist patroon: "
@@ -103,99 +98,99 @@ msgstr "Nieuw wachtwoord bevestigen"
msgid "Old password"
msgstr "Oude wachtwoord"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "E-mailadres (opnieuw)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "E-mailadres bevestiging"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Er moet hetzelfde e-mailadres ingevoerd worden."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Het opgegeven primaire e-mailadres is ongeldig."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Het ingevoerde e-maildomein is niet goedgekeurd."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "Registratie is uitgeschakeld."
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveelheid ingevoerd"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Leeg serienummer"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Duplicaat serienummer"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ongeldig groepsbereik: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Groepsbereik {g} overschrijdt toegestane hoeveelheid ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ongeldig groepsbereik: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Geen serienummers gevonden"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Hoeveelheid van unieke serienummers ({s}) moet overeenkomen met de hoeveelheid ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Verwijder HTML tags van deze waarde"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Verbindingsfout"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Server reageerde met ongeldige statuscode"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Uitzondering opgetreden"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Server reageerde met ongeldige Content-Length waarde"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Afbeeldingsformaat is te groot"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Beelddownload overschrijdt de maximale grootte"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Externe server heeft lege reactie teruggegeven"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Opgegeven URL is geen geldig afbeeldingsbestand"
@@ -211,64 +206,64 @@ msgstr "[{site.name}] Log in bij de app"
msgid "Email"
msgstr "Email"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "Metadata moeten een python dict object zijn"
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Plugin Metadata"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON metadata veld, voor gebruik door externe plugins"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Onjuist opgemaakt patroon"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Onbekende opmaaksleutel gespecificeerd"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Vereiste opmaaksleutel ontbreekt"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Referentieveld mag niet leeg zijn"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Referentie moet overeenkomen met verplicht patroon"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Referentienummer is te groot"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Ontbrekend bestand"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Externe link ontbreekt"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Bijlage"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Bestand als bijlage selecteren"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Bestand als bijlage selecteren"
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Link naar externe URL"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Opmerking"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Bestand opmerking"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Gebruiker"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "uploaddatum"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Bestandsnaam mag niet leeg zijn"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Foute bijlagemap"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Bestandsnaam bevat illegale teken '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Bestandsnaam mist extensie"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Bijlage met deze bestandsnaam bestaat al"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Fout bij hernoemen bestand"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Ongeldige keuze"
msgid "Name"
msgstr "Naam"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Naam"
msgid "Description"
msgstr "Omschrijving"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Omschrijving (optioneel)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "bovenliggende"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Pad"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Markdown notitie (optioneel)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Streepjescode gegevens"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Streepjescode van derden"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Hash van Streepjescode"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Unieke hash van barcode gegevens"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Bestaande barcode gevonden"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Serverfout"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Er is een fout gelogd door de server."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Selecteer valuta uit beschikbare opties"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Bestandsnaam"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Ongeldige waarde"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Data bestand"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Selecteer een bestand om te uploaden"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Niet ondersteund bestandstype"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Bestand is te groot"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Geen kolommen gevonden in het bestand"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Geen data rijen gevonden in dit bestand"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Geen data rijen opgegeven"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Geen gegevenskolommen opgegeven"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Verplichte kolom ontbreekt: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Dubbele kolom: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL van extern afbeeldingsbestand"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld"
@@ -639,7 +634,7 @@ msgstr "Chinees (vereenvoudigd)"
msgid "Chinese (Traditional)"
msgstr "Chinees (traditioneel)"
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Achtergrondwerker check is gefaald"
@@ -688,7 +683,7 @@ msgstr "Retour"
msgid "In Progress"
msgstr "In Behandeling"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Restitutie"
msgid "Reject"
msgstr "Afwijzen"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr "Ongeldige fysieke eenheid"
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Geen geldige valutacode"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Overschotwaarde mag niet negatief zijn"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Overschot mag niet groter zijn dan 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Ongeldige waarde voor overschot"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Gebruikersgegevens bewerken"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Wachtwoord instellen"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Wachtwoordvelden komen niet overeen"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Onjuist wachtwoord opgegeven"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Systeeminformatie"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Over InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "Verbruiksartikelen"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "Verbruiksartikelen"
msgid "Optional"
msgstr "Optioneel"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr "Gevolgd"
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Toegewezen"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Ongeldige keuze voor bovenliggende productie"
msgid "Build Order Reference"
msgstr "Productieorderreferentie"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Productieorder waar deze productie aan is toegewezen"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Productieorder waar deze productie aan is toegewezen"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Verkooporder Referentie"
msgid "SalesOrder to which this build is allocated"
msgstr "Verkooporder waar deze productie aan is toegewezen"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Productiestatus"
msgid "Build status code"
msgstr "Productiestatuscode"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Batchcode"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Batchcode voor deze productieuitvoer"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Verwachte opleveringsdatum"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Opleveringsdatum"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Gebruiker die de productieorder heeft gegeven"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Gebruiker of groep verantwoordelijk voor deze bouwopdracht"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Bouw prioriteit"
msgid "Priority of this build order"
msgstr "Prioriteit van deze bouwopdracht"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "Project Code"
msgid "Project code for this build order"
msgstr "Project code voor deze build order"
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Productieorder {build} is voltooid"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Een productieorder is voltooid"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Geen productie uitvoer opgegeven"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Productie uitvoer is al voltooid"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Productuitvoer komt niet overeen met de Productieorder"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "Hoeveelheid moet groter zijn dan nul"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr "Hoeveelheid kan niet groter zijn dan aantal"
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr "Bouw object"
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr "Bouw object"
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr "Bouw object"
msgid "Quantity"
msgstr "Hoeveelheid"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr "Vereiste hoeveelheid voor bouwopdracht"
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofdonderdeel gemarkeerd is als traceerbaar"
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Voorraad item is te veel toegewezen"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Toewijzing hoeveelheid moet groter zijn dan nul"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel"
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel"
msgid "Stock Item"
msgstr "Voorraadartikel"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Bron voorraadartikel"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Voorraad hoeveelheid toe te wijzen aan productie"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Installeren in"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Bestemming voorraadartikel"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Productieuitvoer"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "Productieuitvoer komt niet overeen met de bovenliggende productie"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "Uitvoeronderdeel komt niet overeen met productieorderonderdeel"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Deze productieuitvoer is al voltooid"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "Deze productieuitvoer is niet volledig toegewezen"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor productie uitvoer"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Serienummers"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Voer serienummers in voor productieuitvoeren"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Serienummers automatisch toewijzen"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Vereiste artikelen automatisch toewijzen met overeenkomende serienummers"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "De volgende serienummers bestaan al of zijn ongeldig"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "Een lijst van productieuitvoeren moet worden verstrekt"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "Een lijst van productieuitvoeren moet worden verstrekt"
msgid "Location"
msgstr "Locatie"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr "Voorraadlocatie voor geannuleerde outputs"
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr "Toewijzingen weggooien"
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Verwijder alle voorraadtoewijzingen voor geannuleerde outputs"
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr "Reden voor annulering van bouworder(s)"
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "Locatie van voltooide productieuitvoeren"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr "Locatie van voltooide productieuitvoeren"
msgid "Status"
msgstr "Status"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "Incomplete Toewijzing Accepteren"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Voltooi de uitvoer als de voorraad niet volledig is toegewezen"
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr "Toegewezen Voorraad Verwijderen"
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Verminder alle voorraad die al is toegewezen aan deze productie"
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "Verwijder Incomplete Uitvoeren"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr "Verwijder alle productieuitvoeren die niet zijn voltooid"
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr "Niet toegestaan"
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr "Accepteer zoals geconsumeerd onder deze bouwopdracht"
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr "De-alloceren voordat deze bouwopdracht voltooid wordt"
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr "Overgealloceerde voorraad"
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Hoe wilt u omgaan met extra voorraaditems toegewezen aan de bouworder"
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr "Sommige voorraadartikelen zijn overalloceerd"
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "Accepteer Niet-toegewezen"
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Accepteer dat voorraadartikelen niet volledig zijn toegewezen aan deze productieorder"
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "Vereiste voorraad is niet volledig toegewezen"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Accepteer Onvolledig"
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Accepteer dat het vereist aantal productieuitvoeren niet is voltooid"
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "Vereiste productiehoeveelheid is voltooid"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "Productieorder heeft onvolledige uitvoeren"
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr "Productielijn"
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "Productieuitvoer"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "Productieuitvoer moet naar dezelfde productie wijzen"
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr "Bouw lijn-item"
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part moet naar hetzelfde onderdeel wijzen als de productieorder"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "Artikel moet op voorraad zijn"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Beschikbare hoeveelheid ({q}) overschreden"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Productieuitvoer moet worden opgegeven voor de toewijzing van gevolgde onderdelen"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Productieuitvoer kan niet worden gespecificeerd voor de toewijzing van niet gevolgde onderdelen"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "Dit voorraadartikel is al toegewezen aan deze productieoutput"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "Allocaties voor artikelen moeten worden opgegeven"
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Voorraadlocatie waar onderdelen afkomstig zijn (laat leeg om van elke locatie te nemen)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Locatie uitsluiten"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Voorraadartikelen van deze geselecteerde locatie uitsluiten"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "Uitwisselbare voorraad"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Voorraadartikelen op meerdere locaties kunnen uitwisselbaar worden gebruikt"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Vervangende Voorraad"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "Toewijzing van vervangende onderdelen toestaan"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr "Optionele Items"
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr "Alloceer optionele BOM items om bestelling te bouwen"
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "Voorraad vereist voor productieorder"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr "Achterstallige Productieorder"
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr "Productieorder {bo} is nu achterstallig"
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Voorraad is niet volledig toegewezen aan deze productieorder"
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr "Voltooide Uitvoeren"
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr "Voorraadbron"
msgid "Stock can be taken from any available location."
msgstr "Voorraad kan worden genomen van elke beschikbare locatie."
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Bestemming"
@@ -2014,1372 +2013,1372 @@ msgstr "Bijgewerkt"
msgid "Timestamp of last update"
msgstr "Tijdstempel van laatste update"
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr "Unieke projectcode"
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr "Projectbeschrijving"
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig)"
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr "Instellingswaarde"
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr "Gekozen waarde is geen geldige optie"
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr "Waarde moet een booleaanse waarde zijn"
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr "Waarde moet een geheel getal zijn"
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "Sleutelreeks moet uniek zijn"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Geen groep"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr "Een leeg domein is niet toegestaan."
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Ongeldige domeinnaam: {domain}"
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Opnieuw opstarten vereist"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr "Een instelling is gewijzigd waarvoor een herstart van de server vereist is"
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr "ID Serverinstantie"
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr "Stringbeschrijving voor de server instantie"
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr "Gebruik de instantie naam"
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr "Gebruik de naam van de instantie in de titelbalk"
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr "Tonen `over` beperken"
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr "Toon de `over` modal alleen aan superusers"
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Bedrijfsnaam"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Interne bedrijfsnaam"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "Basis-URL"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "Basis URL voor serverinstantie"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Standaard Valuta"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr "Selecteer basisvaluta voor de berekening van prijzen"
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "dagen"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Download van URL"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr "Download limiet"
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr "Maximale downloadgrootte voor externe afbeelding"
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr "User-agent gebruikt om te downloaden van URL"
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr "Sta toe om de user-agent te overschrijven die gebruikt wordt om afbeeldingen en bestanden van externe URL te downloaden (laat leeg voor de standaard)"
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Bevestiging vereist"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Vereis expliciete bevestiging van de gebruiker voor bepaalde actie."
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr "Boomstructuur Diepte"
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr "Standaard diepte voor treeview. Diepere niveaus kunnen geladen worden wanneer ze nodig zijn."
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr "Interval voor update"
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr "Hoe vaak te controleren op updates (nul om uit te schakelen)"
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Automatische backup"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Automatische back-up van database- en mediabestanden inschakelen"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Automatische backup interval"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr "Geef het aantal dagen op tussen geautomatiseerde backup"
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr "Interval Taak Verwijderen"
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen"
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr "Error Log Verwijderings Interval"
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen"
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr "Interval Verwijderen Notificatie"
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr "Meldingen van gebruikers worden verwijderd na het opgegeven aantal dagen"
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Streepjescodeondersteuning"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr "Barcode Invoer Vertraging"
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr "Barcode invoerverwerking vertraging"
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr "Barcode Webcam Ondersteuning"
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr "Barcode via webcam scannen in browser toestaan"
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr "Herzieningen onderdeel"
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr "Revisieveld voor onderdeel inschakelen"
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr "Regulier expressiepatroon voor het overeenkomende Onderdeel IPN"
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Duplicaat IPN toestaan"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken"
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "Bewerken IPN toestaan"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr "Sta het wijzigen van de IPN toe tijdens het bewerken van een onderdeel"
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr "Kopieer Onderdeel Stuklijstgegevens"
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr "Kopieer standaard stuklijstgegevens bij het dupliceren van een onderdeel"
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr "Kopieer Onderdeel Parametergegevens"
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr "Parametergegevens standaard kopiëren bij het dupliceren van een onderdeel"
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr "Kopieer Onderdeel Testdata"
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr "Testdata standaard kopiëren bij het dupliceren van een onderdeel"
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr "Kopiëer Categorieparameter Sjablonen"
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel"
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Sjabloon"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "Onderdelen zijn standaard sjablonen"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Samenstelling"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld"
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Component"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Koopbaar"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Onderdelen kunnen standaard gekocht worden"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Verkoopbaar"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Onderdelen kunnen standaard verkocht worden"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Volgbaar"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Onderdelen kunnen standaard gevolgd worden"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Virtueel"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Onderdelen zijn standaard virtueel"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr "Toon Import in Weergaven"
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr "Toon de importwizard in sommige onderdelenweergaven"
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Verwante onderdelen tonen"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Verwante onderdelen voor een onderdeel tonen"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr "Initiële voorraadgegevens"
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr "Aanmaken van eerste voorraad toestaan bij het toevoegen van een nieuw onderdeel"
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Initiële leveranciergegevens"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr "Aanmaken van eerste leveranciersgegevens toestaan bij het toevoegen van een nieuw onderdeel"
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Onderdelennaam Weergaveopmaak"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Opmaak om de onderdeelnaam weer te geven"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr "Standaardicoon voor onderdeel catagorie"
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr "Standaardicoon voor onderdeel catagorie (leeg betekent geen pictogram)"
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr "Forceer Parameter Eenheden"
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr "Als er eenheden worden opgegeven, moeten parameterwaarden overeenkomen met de opgegeven eenheden"
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr "Minimaal aantal prijs decimalen"
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr "Minimaal aantal decimalen om weer te geven bij het weergeven van prijsgegevens"
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr "Maximum prijs decimalen"
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr "Maximum aantal decimalen om weer te geven bij het weergeven van prijsgegevens"
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr "Gebruik leveranciersprijzen"
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr "Prijsvoordelen leveranciers opnemen in de totale prijsberekening"
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr "Aankoopgeschiedenis overschrijven"
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr "Historische order prijzen overschrijven de prijzen van de leverancier"
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr "Gebruik voorraaditem prijzen"
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr "Gebruik prijzen van handmatig ingevoerde voorraadgegevens voor prijsberekeningen"
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr "Voorraad artikelprijs leeftijd"
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr "Voorraaditems ouder dan dit aantal dagen uitsluiten van prijsberekeningen"
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr "Gebruik variantprijzen"
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr "Variantenprijzen opnemen in de totale prijsberekening"
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr "Alleen actieve varianten"
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr "Gebruik alleen actieve variantonderdelen voor het berekenen van variantprijzen"
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr "Prijzen Herbouw interval"
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr "Aantal dagen voordat de prijzen voor onderdelen automatisch worden bijgewerkt"
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Interne Prijzen"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr "Inschakelen van interne prijzen voor onderdelen"
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr "Interne prijs overschrijven"
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr "Indien beschikbaar, interne prijzen overschrijven berekeningen van prijsbereik"
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Printen van labels Inschakelen"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Printen van labels via de webinterface inschakelen"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "Label Afbeelding DPI"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr "DPI resolutie bij het genereren van afbeelginsbestanden voor label printer plugins"
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr "Activeer Rapportages"
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr "Activeer het genereren van rapporten"
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Foutopsporingsmodus"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr "Rapporten genereren in debug modus (HTML uitvoer)"
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Paginagrootte"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Standaard paginagrootte voor PDF rapporten"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr "Activeer Testrapporten"
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr "Activeer het genereren van testrapporten"
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr "Testrapporten Toevoegen"
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr "Bij het afdrukken van een Testrapport, voeg een kopie van het Testrapport toe aan het bijbehorende Voorraadartikel"
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr "Globaal unieke serienummers"
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr "Serienummers voor voorraaditems moeten globaal uniek zijn"
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr "Serienummers automatisch invullen"
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr "Automatisch invullen van serienummer in formulieren"
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr "Verwijder uitgeputte voorraad"
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr "Bepaalt standaard gedrag wanneer een voorraaditem is uitgeput"
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr "Batchcode Sjabloon"
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr "Sjabloon voor het genereren van standaard batchcodes voor voorraadartikelen"
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr "Verlopen Voorraad"
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr "Verlopen voorraad functionaliteit inschakelen"
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr "Verkoop Verlopen Voorraad"
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr "Verkoop verlopen voorraad toestaan"
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr "Voorraad Vervaltijd"
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr "Aantal dagen voordat voorraadartikelen als verouderd worden beschouwd voor ze verlopen"
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr "Produceer Verlopen Voorraad"
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr "Sta productie met verlopen voorraad toe"
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr "Voorraad Eigenaar Toezicht"
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr "Eigenaarstoezicht over voorraadlocaties en items inschakelen"
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr "Voorraadlocatie standaard icoon"
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr "Standaard locatie pictogram (leeg betekent geen icoon)"
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr "Geïnstalleerde voorraad items weergeven"
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr "Geïnstalleerde voorraadartikelen in voorraadtabellen tonen"
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr "Productieorderreferentiepatroon"
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld"
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr "Retourorders inschakelen"
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr "Retourorder functionaliteit inschakelen in de gebruikersinterface"
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr "Retourorder referentie patroon"
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr "Verplicht patroon voor het genereren van Retour Order referentie veld"
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr "Bewerk voltooide retourorders"
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr "Bewerken van retourorders toestaan nadat deze zijn voltooid"
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr "Verkooporderreferentiepatroon"
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld"
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr "Standaard Verzending Verkooporder"
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr "Aanmaken standaard verzending bij verkooporders inschakelen"
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr "Bewerk voltooide verkooporders"
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Bewerken van verkooporders toestaan nadat deze zijn verzonden of voltooid"
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr "Inkooporderreferentiepatroon"
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld"
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr "Bewerk voltooide verkooporders"
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Bewerken van inkooporders toestaan nadat deze zijn verzonden of voltooid"
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr "Wachtwoord vergeten functie inschakelen"
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's"
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr "Registratie inschakelen"
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen"
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "SSO inschakelen"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "SSO inschakelen op de inlogpagina's"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr "Schakel gebruikersregistratie met SSO in"
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Zelfregistratie voor gebruikers middels SSO op de inlogpagina's inschakelen"
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "E-mailadres verplicht"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding"
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr "SSO-gebruikers automatisch invullen"
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Gebruikersdetails van SSO-accountgegevens automatisch invullen"
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "E-mail twee keer"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr "Bij inschrijving gebruikers twee keer om hun e-mail vragen"
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Wachtwoord tweemaal"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden"
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Toegestane domeinen"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Inschrijven beperken tot bepaalde domeinen (komma-gescheiden, beginnend met @)"
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr "Groep bij aanmelding"
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr "Groep waaraan nieuwe gebruikers worden toegewezen bij registratie"
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr "MFA afdwingen"
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr "Gebruikers moeten multifactor-beveiliging gebruiken."
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr "Controleer plugins bij het opstarten"
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Controleer of alle plug-ins zijn geïnstalleerd bij het opstarten - inschakelen in container-omgevingen"
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr "Activeer URL-integratie"
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr "Plugins toestaan om URL-routes toe te voegen"
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr "Activeer navigatie integratie"
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr "Plugins toestaan om te integreren in navigatie"
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr "Activeer app integratie"
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr "Activeer plug-ins om apps toe te voegen"
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr "Activeer planning integratie"
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr "Activeer plugin om periodiek taken uit te voeren"
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr "Activeer evenement integratie"
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr "Activeer plugin om op interne evenementen te reageren"
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr "Activeer project codes"
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr "Activeer project codes voor het bijhouden van projecten"
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr "Voorraadcontrole functionaliteit"
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr "Schakel voorraadfunctionaliteit in voor het opnemen van voorraadniveaus en het berekenen van voorraadwaarde"
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr "Externe locaties uitsluiten"
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Voorraadartikelen op externe locaties uitsluiten van voorraadberekeningen"
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr "Automatische Voorraadcontrole Periode"
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr "Aantal dagen tussen automatische voorraadopname (ingesteld op nul om uit te schakelen)"
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr "Rapport Verwijdering Interval"
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "Voorraadrapportage zal worden verwijderd na het opgegeven aantal dagen"
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr "Inactieve Onderdelen Verbergen"
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Verberg inactieve delen bij items op de homepage"
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr "Toon geabonneerde onderdelen"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr "Toon geabonneerde onderdelen op de homepage"
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "Toon geabonneerde categorieën"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr "Toon geabonneerde onderdeel categorieën op de startpagina"
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Toon laatste onderdelen"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Toon laatste onderdelen op de startpagina"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr "Toon niet-gevalideerde BOM's"
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr "Laat BOMs zien die wachten op validatie op de startpagina"
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr "Toon recente voorraadwijzigingen"
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr "Toon recent aangepaste voorraadartikelen op de startpagina"
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Toon lage voorraad"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Toon lage voorraad van artikelen op de startpagina"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr "Toon lege voorraad"
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr "Toon lege voorraad van artikelen op de startpagina"
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Toon benodigde voorraad"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina"
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr "Toon verlopen voorraad"
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr "Toon verlopen voorraad van artikelen op de startpagina"
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr "Toon verouderde voorraad"
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr "Toon verouderde voorraad van artikelen op de startpagina"
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr "Toon openstaande producties"
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr "Toon openstaande producties op de startpagina"
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr "Toon achterstallige productie"
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr "Toon achterstallige producties op de startpagina"
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr "Toon uitstaande PO's"
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr "Toon uitstaande PO's op de startpagina"
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr "Toon achterstallige PO's"
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr "Toon achterstallige PO's op de startpagina"
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr "Toon uitstaande SO's"
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr "Toon uitstaande SO's op de startpagina"
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr "Toon achterstallige SO's"
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr "Toon achterstallige SO's op de startpagina"
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr "Toon in behandeling SO verzendingen"
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr "Toon in behandeling zijnde SO verzendingen op de startpagina"
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr "Nieuws tonen"
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr "Nieuws op de startpagina weergeven"
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr "Inline labelweergave"
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "PDF-labels in browser weergeven, in plaats van als bestand te downloaden"
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr "Standaard label printer"
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr "Instellen welke label printer standaard moet worden geselecteerd"
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr "Inline rapport weergeven"
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "PDF-rapporten in de browser weergeven, in plaats van als bestand te downloaden"
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr "Zoek Onderdelen"
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr "Onderdelen weergeven in zoekscherm"
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr "Zoek leveranciersonderdelen"
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr "Leveranciersonderdelen weergeven in zoekscherm"
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr "Fabrikant onderdelen zoeken"
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr "Fabrikant onderdelen weergeven in zoekscherm"
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr "Inactieve Onderdelen Verbergen"
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr "Inactieve verkooporders weglaten in het zoekvenster"
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr "Zoek categorieën"
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr "Toon onderdeelcategorieën in zoekvenster"
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr "Zoek in Voorraad"
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr "Toon voorraad items in zoekvenster"
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr "Verberg niet beschikbare voorraad items"
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Voorraadartikelen die niet beschikbaar zijn niet in het zoekvenster weergeven"
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr "Locaties doorzoeken"
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr "Toon voorraadlocaties in zoekvenster"
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr "Zoek bedrijven"
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr "Toon bedrijven in zoekvenster"
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr "Zoek Bouworders"
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr "Toon bouworders in zoekvenster"
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr "Inkooporders Zoeken"
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr "Toon inkooporders in het zoekvenster"
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr "Inactieve Inkooporders Weglaten"
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Inactieve inkooporders weglaten in het zoekvenster"
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr "Verkooporders zoeken"
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr "Toon verkooporders in het zoekvenster"
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr "Inactieve Verkooporders Weglaten"
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr "Inactieve verkooporders weglaten in het zoekvenster"
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr "Zoek retourorders"
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr "Toon bouworders in zoekvenster"
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr "Inactieve retourbestellingen weglaten"
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr "Inactieve retourorders uitsluiten in zoekvenster"
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr "Zoekvoorbeeld resultaten"
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr "Aantal resultaten om weer te geven in elk gedeelte van het zoekvenster"
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr "Regex zoeken"
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr "Schakel reguliere expressies in zoekopdrachten in"
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr "Hele woorden zoeken"
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr "Zoekopdrachten geven resultaat voor hele woord overeenkomsten"
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "Toon hoeveelheid in formulieren"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr "Hoeveelheid beschikbare onderdelen in sommige formulieren weergeven"
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr "Escape-toets sluit formulieren"
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr "Gebruik de Escape-toets om standaard formulieren te sluiten"
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr "Vaste navigatiebalk"
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr "De navigatiebalk positie is gefixeerd aan de bovenkant van het scherm"
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr "Datum formaat"
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr "Voorkeursindeling voor weergave van datums"
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Onderdeel planning"
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr "Toon informatie voor het plannen van onderdelen"
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Voorraadcontrole onderdeel"
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "Toon voorraadinformatie van onderdeel (als voorraadcontrole functionaliteit is ingeschakeld)"
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr "Tabel tekenreekslengte"
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr "Limiet tekenreeksen voor het weergegeven in tabelweergaven"
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr "Standaard sjabloon product onderdeel"
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr "Het onderdeellabelsjabloon dat automatisch wordt geselecteerd"
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr "Standaard sjabloon voorraad onderdeel"
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr "Standaard label van voorraadlocatie"
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Prijs"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr "Eindpunt"
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr "Eindpunt waarop deze webhook wordt ontvangen"
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr "Naam van deze webhook"
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr "Naam van deze webhook"
msgid "Active"
msgstr "Actief"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr "Is deze webhook actief"
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr "Token"
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr "Token voor toegang"
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr "Geheim"
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr "Gedeeld geheim voor HMAC"
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr "Bericht ID"
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr "Host"
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr "Koptekst"
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr "Koptekst van dit bericht"
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr "Berichtinhoud"
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr "Inhoud van dit bericht"
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr "Aan gewerkt"
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr "Afbeelding"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr "Een nieuwe order is aangemaakt en aan u toegewezen"
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr "Artikelen zijn ontvangen tegen een inkooporder"
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr "Geïmporteerde onderdelen"
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Contact e-mailadres"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "Fabriceert dit bedrijf onderdelen?"
msgid "Default currency used for this company"
msgstr "Standaardvaluta die gebruikt wordt voor dit bedrijf"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Bedrijf"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Basis onderdeel"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Onderdeel selecteren"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr "Onderdeel selecteren"
msgid "Manufacturer"
msgstr "Fabrikant"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Fabrikant selecteren"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Fabrikant selecteren"
msgid "MPN"
msgstr "MPN"
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Fabrikant artikel nummer (MPN)"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr "URL voor externe link van het fabrikant onderdeel"
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr "Omschrijving onderdeel fabrikant"
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Fabrikant onderdeel"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Parameternaam"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Waarde"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Parameterwaarde"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Eenheden"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Parameter eenheden"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel"
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd
msgid "Supplier"
msgstr "Leverancier"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Leverancier selecteren"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Leverancier selecteren"
msgid "SKU"
msgstr "SKU"
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "Selecteer fabrikant onderdeel"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Opmerking"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "basisprijs"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimale kosten (bijv. voorraadkosten)"
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr "meerdere"
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr "Order meerdere"
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr "Afbeelding downloaden van URL"
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Klant"
msgid "Uses default currency"
msgstr "Gebruik standaard valuta"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Fabrikanten"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr "Geen fabrikanten informatie beschikbaar"
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr "Koppel barcode aan leveranciers onderdeel"
msgid "Update Part Availability"
msgstr "Beschikbaarheid van onderdeel bijwerken"
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr "Voorraadartikelen"
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Nieuwe fabrikant"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Klanten"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Nieuwe Klant"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Bedrijven"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Nieuw Bedrijf"
@@ -4425,7 +4422,7 @@ msgstr "Label"
msgid "Label template file"
msgstr "Label template bestand"
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Ingeschakeld"
@@ -4449,7 +4446,7 @@ msgstr "Hoogte [mm]"
msgid "Label height, specified in mm"
msgstr "Label hoogte, gespecificeerd in mm"
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr "Bestandsnaam Patroon"
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Filters"
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr "Totaalprijs"
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr "Inkooporder"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr "Inkooporder"
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr "Link naar externe pagina"
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Verwachte datum voor levering van de bestelling. De bestelling wordt achterstallig na deze datum."
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr "Aangemaakt Door"
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "Gebruiker of groep verantwoordelijk voor deze order"
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Orderreferentie"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr "Inkooporder status"
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr "Bedrijf waar de artikelen van worden besteld"
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr "Leveranciersreferentie"
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr "Order referentiecode van leverancier"
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr "ontvangen door"
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr "Datum van uitgifte"
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr "Order uitgegeven op datum"
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr "Order voltooid op datum"
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr "Onderdeelleverancier moet overeenkomen met de Inkooporderleverancier"
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr "Hoeveelheid moet een positief getal zijn"
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr "Bedrijf waaraan de artikelen worden verkocht"
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr "Klantreferentie "
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr "Klant order referentiecode"
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr "Verzenddatum"
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr "verzonden door"
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr "Order kan niet worden voltooid omdat er geen onderdelen aangewezen zijn"
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Bestelling kan niet worden voltooid omdat er onvolledige verzendingen aanwezig zijn"
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn"
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr "Hoeveelheid artikelen"
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr "Artikelregel referentie"
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr "Artikel notities"
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr "Context"
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr "Additionele context voor deze regel"
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr "Stukprijs"
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr "Leveranciersonderdeel moet overeenkomen met leverancier"
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr "verwijderd"
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr "Order"
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr "Leveranciersonderdeel"
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr "Leveranciersonderdeel"
msgid "Received"
msgstr "Ontvangen"
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr "Aantal ontvangen artikelen"
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Inkoopprijs"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr "Aankoopprijs per stuk"
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Waar wil de inkoper dat dit artikel opgeslagen wordt?"
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr "Virtueel onderdeel kan niet worden toegewezen aan een verkooporder"
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr "Alleen verkoopbare onderdelen kunnen aan een verkooporder worden toegewezen"
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "Verkoopprijs"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr "Prijs per stuk"
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr "Verzonden hoeveelheid"
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr "Datum van verzending"
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr "Gecontroleerd door"
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr "Gebruiker die deze zending gecontroleerd heeft"
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Zending"
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr "Zendingsnummer"
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr "Volgnummer"
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr "Zending volginformatie"
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr "Factuurnummer"
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr "Referentienummer voor bijbehorende factuur"
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr "Verzending is al verzonden"
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr "Zending heeft geen toegewezen voorraadartikelen"
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr "Voorraadartikel is niet toegewezen"
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kan het voorraadartikel niet toewijzen aan een regel met een ander onderdeel"
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel"
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid"
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel"
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr "Verkooporder komt niet overeen met zending"
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr "Verzending komt niet overeen met verkooporder"
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr "Regel"
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr "Verzendreferentie verkooporder"
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr "Artikel"
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr "Selecteer voorraadartikel om toe te wijzen"
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr "Voer voorraadtoewijzingshoeveelheid in"
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr "Order kan niet worden geannuleerd"
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr "Order is niet open"
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr "Valuta Inkoopprijs"
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr "Leveranciersonderdeel moet worden gespecificeerd"
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr "Inkooporder moet worden gespecificeerd"
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr "De leverancier moet overeenkomen met de inkooporder"
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr "Inkooporder moet overeenkomen met de leverancier"
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr "Artikel"
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr "Artikelregel komt niet overeen met inkooporder"
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen"
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr "Voer serienummers in voor inkomende voorraadartikelen"
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr "Streepjescode is al in gebruik"
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen"
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr "Artikelen moeten worden opgegeven"
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr "Bestemmingslocatie moet worden opgegeven"
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr "Geleverde streepjescodewaarden moeten uniek zijn"
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr "Valuta verkoopprijs"
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr "Geen verzenddetails opgegeven"
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr "Artikelregel is niet gekoppeld aan deze bestelling"
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr "Hoeveelheid moet positief zijn"
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr "Voer serienummers in om toe te wijzen"
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr "Verzending is al verzonden"
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr "Zending is niet gekoppeld aan deze bestelling"
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr "Geen overeenkomst gevonden voor de volgende serienummers"
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr "De volgende serienummers zijn al toegewezen"
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr "Achterstallige inkooporder"
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "Inkooporder {po} is nu achterstallig"
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr "Achterstallige Verkooporder"
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "Verkooporder {so} is nu achterstallig"
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr "Verzendingen in behandeling"
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Acties"
@@ -5434,47 +5431,47 @@ msgstr "{part} stukprijs bijgewerkt naar {price}"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "{part} stukprijs bijgewerkt naar {price} en aantal naar {qty}"
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr "Onderdeel-id"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr "Onderdeel naam"
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr "Onderdeel omschrijving"
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr "Onderdelen"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr "Binnenkomende Inkooporder"
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr "Uitgaande Verkooporder"
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr "Geproduceerde voorraad door Productieorder"
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr "Voorraad vereist voor Productieorder"
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Standaard locatie"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Totale Voorraad"
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "Beschikbare Voorraad"
@@ -5616,7 +5613,7 @@ msgstr "Beschikbare Voorraad"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Onderdeel Categorie"
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN moet overeenkomen met regex-patroon {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Onderdeel naam"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "Onderdeel Categorie"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr "Intern Onderdeelnummer"
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr "Standaardleverancier"
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr "Eenheden voor dit onderdeel"
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr "Onderdeel voor voorraadcontrole"
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr "Datum"
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr "Aantal onderdelen"
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr "De template van de parameter moet uniek zijn"
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr "Parameternaam"
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr "Parameter Template"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr "Parameterwaarde"
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr "Standaard Parameter Waarde"
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "Stuklijstartikel"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr "Geen onderdelen geselecteerd"
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr "Afbeelding kopiëren"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel"
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr "Parameters kopiëren"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr "Parameter data kopiëren van het originele onderdeel"
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr "Ongeldige hoeveelheid"
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr "Toegewezen aan Productieorder"
msgid "Allocated to Sales Orders"
msgstr "Toegewezen aan verkooporders"
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr "Geen actie gespecificeerd"
msgid "No matching action found"
msgstr "Geen overeenkomende actie gevonden"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Geen overeenkomst gevonden voor streepjescodegegevens"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Overeenkomst gevonden voor streepjescodegegevens"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr "Filters inkooporder"
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr "Verkooporder zoekopdracht filters"
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr "Totaal"
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr "Voorraadlocatie"
msgid "Stock Locations"
msgstr "Voorraadlocaties"
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr "Inkooporder Bron"
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr "Inkooporder voor dit voorraadartikel"
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr "Bestemming Verkooporder"
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr "Voorraadartikel is toegewezen aan een verkooporder"
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr "Artikel is toegewezen aan een verkooporder"
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr "Artikel is toegewezen aan een productieorder"
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr "De volgende onderdelen hebben een lage vereiste voorraad"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr "Vereiste Hoeveelheid"
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr "Geen Voorraad Aanwezig"
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index af4630e42b..204a3a8acf 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:01\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API-endepunkt ikke funnet"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Brukeren har ikke rettigheter til å se denne modellen"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Ingen verdi angitt"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Feildetaljer kan finnes i admin-panelet"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Oppgi dato"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Oppgi dato"
msgid "Notes"
msgstr "Notater"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Verdi '{name}' vises ikke i mønsterformat"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Angitt verdi samsvarer ikke med påkrevd mønster: "
@@ -103,99 +98,99 @@ msgstr "Bekreft nytt passord"
msgid "Old password"
msgstr "Gammelt passord"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "E-post (gjenta)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Bekreft e-postaddresse"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Du må angi samme e-post hver gang."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Den oppgitte primære e-postadressen er ikke gyldig."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Det oppgitte e-postdomenet er ikke godkjent."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "Registrering er deaktivert."
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Tom serienummerstreng"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Duplisert serienummer"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ugyldig gruppeserie: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Gruppeserie {g} overskrider tillatt antall ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ugyldig gruppesekvens: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Ingen serienummer funnet"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Antall unike serienumre ({s}) må samsvare med antall ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Fjern HTML-tagger fra denne verdien"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Tilkoblingsfeil"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Serveren svarte med ugyldig statuskode"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Det har oppstått et unntak"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Serveren svarte med ugyldig \"Content-Length\"-verdi"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Bildestørrelsen er for stor"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Bildenedlasting overskred maksimal størrelse"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Ekstern server returnerte tomt svar"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Angitt URL er ikke en gyldig bildefil"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr "E-post"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "Metadata må være et python dict-objekt"
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Utvidelse-metadata"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON-metadatafelt, for bruk av eksterne utvidelser"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Uriktig formatert mønster"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Ukjent formatnøkkel spesifisert"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Mangler nødvendig formatnøkkel"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Referansefeltet kan ikke være tomt"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Referansen må samsvare påkrevd mønster"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Referansenummeret er for stort"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Fil mangler"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Mangler eksternlenke"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Vedlegg"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Velg fil å legge ved"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Velg fil å legge ved"
msgid "Link"
msgstr "Lenke"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Lenke til ekstern URL"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Bruker"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "opplastet dato"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Filnavn kan ikke være tomt"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Ugyldig vedleggskatalog"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Filnavn inneholder ugyldig tegn '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Filnavn mangler filtype"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Vedlegg med dette filnavnet finnes allerede"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Feil ved endring av filnavn"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Duplikatnavn kan ikke eksistere under samme overordnede"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Ugyldig valg"
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Navn"
msgid "Description"
msgstr "Beskrivelse"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Beskrivelse (valgfritt)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "overkategori"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Sti"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Markdown-notater (valgfritt)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Strekkodedata"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Tredjeparts strekkodedata"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Strekkode-hash"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Unik hash av strekkodedata"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Eksisterende strekkode funnet"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Serverfeil"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "En feil har blitt logget av serveren."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Må være et gyldig tall"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Velg valuta ut fra tilgjengelige alternativer"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Filnavn"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Ugyldig verdi"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Datafil"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Velg datafil for opplasting"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Filtypen støttes ikke"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Filen er for stor"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Ingen kolonner funnet i filen"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Ingen datarader funnet i fil"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Ingen datarader oppgitt"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Ingen datakolonner angitt"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Mangler påkrevd kolonne: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Dupliaktkolonne: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URLtil ekstern bildefil"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert"
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Sjekk av bakgrunnsarbeider mislyktes"
@@ -688,7 +683,7 @@ msgstr "Returnert"
msgid "In Progress"
msgstr "Pågående"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Refusjon"
msgid "Reject"
msgstr "Avvis"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr "Ugyldig fysisk enhet"
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Ikke en gyldig valutakode"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Svinn-verdien kan ikke være negativ"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Svinn kan ikke overstige 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Ugyldig verdi for svinn"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Rediger brukerinformasjon"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Velg passord"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Passordfeltene må samsvare"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Feil passord angitt"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Systeminformasjon"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Om InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Bygningen må avbrytes før den kan slettes"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "Forbruksvare"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "Forbruksvare"
msgid "Optional"
msgstr "Valgfritt"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr "Spores"
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Tildelt"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Ugylding valg for overordnet build"
msgid "Build Order Reference"
msgstr "Bygg ordrereferanse"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Build order som denne build er tildelt til"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Build order som denne build er tildelt til"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Salgsordrereferanse"
msgid "SalesOrder to which this build is allocated"
msgstr "Salgsordren denne produksjonen er tildelt til"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Produksjonsstatus"
msgid "Build status code"
msgstr "Produksjonsstatuskode"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Batchkode"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Batchkode for denne produksjonsartikkelen"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Forventet sluttdato"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Forventet dato for ferdigstillelse. Build er forvalt etter denne datoen."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Fullført dato"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Brukeren som utstede denne prosjekt order"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Bruker eller gruppe ansvarlig for produksjonsordren"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Produksjonsprioritet"
msgid "Priority of this build order"
msgstr "Produksjonsordrens prioritet"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "Prosjektkode"
msgid "Project code for this build order"
msgstr "Prosjektkode for denne produksjonsordren"
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Byggeordre {build} er fullført"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Byggeordre er fullført"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Ingen prosjekt utgang"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Prosjekt utdata er allerede utfylt"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Prosjekt utdata samsvarer ikke Prosjekt Order"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "Mengden må være større enn null"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr "Kvantitet kan ikke være større enn utgangsantallet"
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr "Bygg objekt"
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr "Bygg objekt"
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr "Bygg objekt"
msgid "Quantity"
msgstr "Antall"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr "Påkrved kvantitet for ordre"
-#: build/models.py:1354
+#: build/models.py:1371
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:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelig lagerbeholdning ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Lagervaren er overtildelt"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Tildelingsantall må være større enn null"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Mengden må være 1 for serialisert lagervare"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr "Valgt lagervare samsvarer ikke med BOM-linjen"
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr "Valgt lagervare samsvarer ikke med BOM-linjen"
msgid "Stock Item"
msgstr "Lagervare"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Kildelagervare"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Lagerantall å tildele til produksjonen"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Monteres i"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Lagervare for montering"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Produksjonsartikkel"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "Produksjonsartikkel samsvarer ikke med overordnet produksjon"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "Resultatdel samsvarer ikke med produksjonsordredel"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Denne produksjonsartikkelen er allerede fullført"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "Denne produksjonsartikkelen er ikke fullt tildelt"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Angi antall for produksjonsartikkel"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Heltallsverdi kreves for sporbare deler"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Heltallsverdi kreves, da stykklisten inneholder sporbare deler"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Serienummer"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Angi serienummer for produksjonsartikler"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Automatisk tildeling av serienummer"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Automatisk tildeling av nødvendige artikler med tilsvarende serienummer"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "Følgende serienummer finnes allerede eller er ugyldige"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "En liste over produksjonsartikler må oppgis"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "En liste over produksjonsartikler må oppgis"
msgid "Location"
msgstr "Plassering"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr "Lagreplassering for skrotet utganger"
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr "Forkast tildelinger"
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Forkast lagerallokering for skrotet utganger"
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr "Grunnen til utrangering av bygg utgang(er)"
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "Plassering for ferdige produksjonsartikler"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr "Plassering for ferdige produksjonsartikler"
msgid "Status"
msgstr "Status"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "Godta ufullstendig tildeling"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Fullfør artikler dersom lagerbeholdning ikke er fullt tildelt"
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr "Fjern tildelt lagerbeholdning"
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Trekk fra all lagerbeholdning som allerede er tildelt denne produksjonen"
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "Fjern ufullstendige artikler"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr "Slett alle produksjonsartikler som ikke er fullført"
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr "Ikke tillatt"
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr "Godta som brukt av denne produksjonsordren"
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr "Fjern tildeling før produksjonsordren fullføres"
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr "Overtildelt lagerbeholdning"
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Hvordan vil du håndtere ekstra lagervarer tildelt produksjonsordren"
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr "Noen lagervarer har blitt overtildelt"
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "Godta ikke tildelt"
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Godta at lagervarer ikke er fullt tildelt til denne produksjonsordren"
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "Nøvendig lagerbeholdning er ikke fullt tildelt"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Godta uferdig"
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Godta at nødvendig antall fullførte produksjonsartikler ikke er nådd"
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "Nødvendig produksjonsmengde er ikke nådd"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "Produksjonsordren har uferdige artikler"
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr "Bygg linje"
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "Produksjonsartikkel"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "Produksjonsartikkel må peke til samme produksjon"
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr "Bygg linjeelement"
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part må peke på den samme delen som produksjonsordren"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "Artikkelen må være på lager"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Tilgjengelig antall ({q}) overskredet"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Produksjonsartikkel må spesifiseres for tildeling av sporede deler"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Produksjonsartikkel kan ikke spesifiseres for tildeling av usporede deler"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "Denne lagervaren er allerede tildelt til denne produksjonsartikkelen"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "Tildelingsartikler må oppgis"
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Lagerplassering hvor deler skal hentes (la stå tomt for å ta fra alle plasseringer)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Eksluderer plassering"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Ekskluder lagervarer fra denne valgte plasseringen"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "Utskiftbar lagerbeholdning"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Lagervarer ved flere plasseringer kan brukes om hverandre"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Erstatning av lagerbeholdning"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "Tilatt tildelling av erstatningsdeler"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr "Valgfrie artikler"
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr "Tildel valgfrie BOM-artikler til produksjonsordre"
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "Lagerbeholdning kreves for produksjonsordre"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr "Forfalt produksjonsordre"
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr "Produksjonsordre {bo} er nå forfalt"
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Lagerbeholdning er ikke fullt tildelt til denne Produksjonsordren"
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr "Fullførte byggeresultater"
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr "Lagerkilde"
msgid "Stock can be taken from any available location."
msgstr "Lagervare kan hentes fra alle tilgengelige steder."
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Destinasjon"
@@ -2014,1372 +2013,1372 @@ msgstr "Oppdatert"
msgid "Timestamp of last update"
msgstr "Tidsstempel for forrige oppdatering"
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr "Unik prosjektkode"
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr "Prosjektbeskrivelse"
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr "Innstillingsnøkkel (må være unik - ufølsom for store of små bokstaver)"
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr "Innstillings verdi"
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr "Valgt verdi er ikke et gyldig alternativ"
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr "Verdien må være en boolsk verdi"
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr "Verdien må være et heltall"
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "Nøkkelstreng må være unik"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Ingen gruppe"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr "Et tomt domene er ikke tillatt."
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Ugyldig domenenavn: {domain}"
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Omstart kreves"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr "En innstilling har blitt endret som krever en omstart av serveren"
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr "Navn på serverinstans"
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr "Strengbeskrivelse for serverinstansen"
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr "Bruk instansnavn"
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr "Bruk instansnavnet på tittellinjen"
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr "Begrens visning av 'om'"
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr "Vis `about`-modal kun til superbrukere"
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Firmanavn"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Internt firmanavn"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "Base-URL"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "Base-URL for serverinstans"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Standardvaluta"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr "Velg grunnvalutaen for prisberegninger"
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "dager"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Last ned fra URL"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Tillat nedlastning av eksterne bilder og filer fra ekstern URL"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr "Nedlastingsgrense"
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr "Maksimal tillatt nedlastingsstørrelse for eksternt bilde"
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr "User-Agent brukt for å laste ned fra URL"
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr "Tillat overstyring av User-Agent brukt for å laste ned bilder og filer fra eksterne URLer (lå stå blank for standard)"
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Krev bekreftelse"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Krev eksplisitt brukerbekreftelse for visse handlinger."
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr "Tredybde"
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr "Standard tredybde for trevisning. Dypere nivåer kan lastes inn ved behov."
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr "Intervall for oppdateringssjekk"
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr "Tidsintervall for å se etter oppdateringer(sett til null for å skru av)"
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Automatisk sikkerhetskopiering"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Aktiver automatisk sikkerhetskopiering av database og mediafiler"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Automatisk sikkerhetskopieringsintervall"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr "Angi antall dager mellom automatiske sikkerhetskopieringshendelser"
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr "Slettingsintervall for oppgaver"
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr "Bakgrunnsoppgaveresultater vil bli slettet etter antall angitte dager"
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr "Slettingsintervall for feillogg"
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr "Feilloggene vil bli slettet etter et angitt antall dager"
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr "Slettingsintervall for varsler"
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr "Brukervarsler slettes etter angitt antall dager"
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Strekkodestøtte"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr "Innlesingsforsinkelse for strekkode"
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr "Tidsforsinkelse for behandling av strekkode"
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr "Støtte for strekkodewebkamera"
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr "Tillat strekkodelesning via webkamera i nettleseren"
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr "Delrevisjoner"
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr "Aktiver revisjonsfeltet for Del"
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr "IPN regex"
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr "Regulært uttrykksmønster for matching av internt delnummer"
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Tilat duplikat av internt delnummer"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr "Tillat flere deler å dele samme interne delnummer"
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "Tillat redigering av internt delnummer"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr "Tillat endring av IPN-verdien mens du redigerer en del"
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr "Kopier BOM-data fra del"
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr "Kopier BOM-data som standard når du dupliserer en del"
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr "Kopier parameterdata fra del"
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr "Kopier parameterdata som standard ved duplisering av en del"
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr "Kopier testdata fra del"
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr "Kopier testdata som standard ved duplisering av en del"
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr "Kopier designmaler for kategoriparametere"
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr "Kopier parametermaler for kategori ved oppretting av en del"
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Mal"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "Deler er maler som standard"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Sammenstilling"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr "Deler kan settes sammen fra andre komponenter som standard"
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Komponent"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "Deler kan bli brukt som underkomponenter som standard"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Kjøpbar"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Deler er kjøpbare som standard"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Salgbar"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Deler er salgbare som standard"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Sporbar"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Deler er sporbare som standard"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Virtuelle"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Deler er virtuelle som standard"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr "Vis import i visninger"
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr "Vis importveiviseren i noen deler visninger"
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Vis relaterte deler"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Vis relaterte deler i en del"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr "Innledende lagerbeholdningsdata"
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr "Tillat oppretting av innledende lagerbeholdning når en ny del opprettes"
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Innledende leverandørdata"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr "Tillat oppretting av innledende leverandørdata når en ny del opprettes"
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Visningsformat for delnavn"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Format for å vise delnavnet"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr "Standardikon for delkategorier"
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr "Standardikon for delkategorier (tomt betyr ingen ikon)"
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr "Minimum antall desimalplasser for priser"
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr "Minimum antall desimalplasser som skal vises når man gjengir prisdata"
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr "Maksimalt antall desimalplasser for priser"
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr "Maksimalt antall desimalplasser som skal vises når man gjengir prisdata"
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr "Bruk leverandørpriser"
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr "Inkluder leverandørprisbrudd i beregninger av totalpriser"
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr "Innkjøpshistorikkoverstyring"
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr "Historiske innkjøpspriser overstyrer leverandørprisnivåer"
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr "Bruk lagervarepriser"
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr "Bruk priser fra manuelt innlagte lagervarer for prisberegninger"
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr "Lagervare prisalder"
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr "Unnta lagervarer som er eldre enn dette antall dager fra prisberegninger"
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr "Bruk Variantpriser"
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr "Inkluder variantpriser i beregninger av totale priser"
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr "Kun aktive varianter"
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr "Bruk kun aktive variantdeler til beregning av variantprising"
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr "Intervall for rekalkulering av priser"
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr "Antall dager før delpriser blir automatisk oppdatert"
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Interne Priser"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr "Aktiver interne priser for deler"
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr "Intern prisoverstyring"
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr "Hvis tilgjengelig, overstyrer interne priser kalkulering av prisområde"
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Aktiver etikettutskrift"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Aktiver utskrift av etiketter fra nettleseren"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "Etikettbilde-DPI"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr "DPI-oppløsning når når det genereres bildefiler for sending til utvidelser for etikettutskrift"
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr "Aktiver Rapporter"
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr "Aktiver generering av rapporter"
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Feilsøkingsmodus"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr "Generer rapporter i feilsøkingsmodus (HTML-output)"
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Sidestørrelse"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Standard sidestørrelse for PDF-rapporter"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr "Aktiver Testrapporter"
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr "Aktiver generering av testrapporter"
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr "Legg ved testrapporter"
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr "Når det skrives ut en Testrapport, legg ved en kopi av Testrapporten på den assosierte Lagervaren"
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr "Globalt Unike Serienummer"
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr "Serienummer for lagervarer må være globalt unike"
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr "Automatisk tildeling av Serienummer"
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr "Aumatisk fyll ut serienummer i skjemaer"
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr "Slett oppbrukt lagerbeholdning"
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr "Bestemmer standard oppførsel når en lagervare er oppbrukt"
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr "Batchkodemal"
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr "Mal for generering av standard batchkoder for lagervarer"
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr "Lagerbeholdning utløper"
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr "Aktiver funksjonalitet for utløp av lagerbeholdning"
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr "Selg utløpt lagerbeholdning"
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr "Tillat salg av utgått lagerbeholdning"
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr "Foreldet lagerbeholdning tidsintervall"
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr "Antall dager før lagervarer er ansett som foreldet før utløp"
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr "Produsér Utløpt Lagerbeholdning"
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr "Tillat produksjon med utløpt lagerbeholdning"
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr "Kontroll over eierskap av lagerbeholdning"
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr "Aktiver eierskap over lagerplasseringer og -varer"
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr "Lagerplassering standard ikon"
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr "Lagerplassering standard ikon (tomt betyr ingen ikon)"
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr "Vis installerte lagervarer"
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr "Vis installerte lagervarer i lagertabeller"
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr "Produksjonsordre-referansemønster"
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr "Nødvendig mønster for å generere Produksjonsordre-referansefeltet"
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr "Aktiver returordrer"
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr "Aktiver returordrefunksjonalitet i brukergrensesnittet"
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr "Returordre-referansemønster"
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr "Påkrevd mønster for å generere returordrereferansefelt"
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr "Rediger fullførte returordrer"
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr "Tillat redigering av returordrer etter de er fullført"
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr "Salgsordre-referansemønster"
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr "Påkrevd mønster for å generere salgsordrereferansefelt"
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr "Salgsordre standard fraktmetode"
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr "Aktiver opprettelse av standard forsendelse med salgsordrer"
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr "Rediger fullførte salgsordrer"
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Tillat redigering av salgsordrer etter de har blitt sendt eller fullført"
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr "Referansemønster for innkjøpsordre"
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Obligatorisk mønster for generering av referansefelt for innkjøpsordre"
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr "Rediger fullførte innkjøpsordre"
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Tillat redigering av innkjøpsordre etter at de har blitt sendt eller fullført"
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr "Aktiver passord glemt"
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr "Ativer funskjon for glemt passord på innloggingssidene"
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr "Aktiver registrering"
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene"
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "Aktiver SSO"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "Aktiver SSO på innloggingssidene"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr "Aktiver SSO-registrering"
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Aktiver selvregistrering via SSO for brukere på innloggingssiden"
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "E-postadresse kreves"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr "Krevt at brukere angir e-post ved registrering"
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr "Auto-utfyll SSO-brukere"
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Fyll automatisk ut brukeropplysninger fra SSO-kontodata"
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "E-post to ganger"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr "Spør brukeren om e-post to ganger ved registrering"
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Passord to ganger"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr "Spør brukeren om passord to ganger ved registrering"
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Tillatte domener"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Begrens registrering til bestemte domener (kommaseparert, begynner med @)"
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr "Gruppe ved registrering"
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr "Gruppe nye brukere blir tilknyttet ved registrering"
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr "Krev MFA"
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr "Brukere må bruke flerfaktorsikkerhet."
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr "Sjekk utvidelser ved oppstart"
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Sjekk at alle utvidelser er installert ved oppstart - aktiver i containermiljøer"
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr "Aktiver URL-integrasjon"
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr "Tillat utvidelser å legge til URL-ruter"
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr "Aktiver navigasjonsintegrasjon"
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr "Tillat utvidelser å integrere mot navigasjon"
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr "Aktiver app-integrasjon"
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr "Tillat utvidelser å legge til apper"
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr "Aktiver tidsplanintegrasjon"
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr "Tillat utvidelser å kjøre planlagte oppgaver"
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr "Aktiver hendelsesintegrasjon"
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr "Tillat utvidelser å reagere på interne hendelser"
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr "Aktiver prosjektkoder"
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr "Aktiver prosjektkoder for å spore prosjekter"
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr "Varetellingsfunksjonalitet"
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr "Aktiver varetellingsfunksjonalitet for å registrere lagernivåer og regne ut lagerverdi"
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr "Automatisk varetellingsperiode"
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr "Antall dager mellom automatisk varetellingsregistrering (sett til null for å deaktivere)"
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr "Rapportslettingsintervall"
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "Varetellingsrapporter vil slettes etter angitt antall dager"
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr "Innstillingsnøkkel (må være unik - ufølsom for store og små bokstaver"
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr "Skjul inaktive elementer"
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Skjul inaktive deler i resultater som vises på hjemmesiden"
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr "Vis abonnerte deler"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr "Vis abonnerte deler på startsiden"
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "Vis abonnerte kategorier"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr "Vis abonnerte delkatekorier på startsiden"
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Vis nyeste deler"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Vis nyeste deler på startsiden"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr "Vis uvaliderte stykklister"
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr "Vis stykklister som venter på validering på startsiden"
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr "Vis nylige lagerendringer"
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr "Vis nylig endrede lagervarer på startsiden"
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Vis lav lagerbeholdning"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Vis lave lagervarer på startsiden"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr "Vis tomme lagervarer"
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr "Vis tom lagerbeholdning på startsiden"
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Vis nødvendig lagerbeholdning"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr "Vis lagervarer som trengs for produksjon på startsiden"
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr "Vis utløpt lagerbeholdning"
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr "Vis utløpte lagervarer på startsiden"
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr "Vis foreldet lagerbeholdning"
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr "Vis foreldet lagerbeholdning på startsiden"
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr "Vis ventende produksjoner"
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr "Vi ventende produksjoner på startsiden"
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr "Vis forfalte produksjoner"
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr "Vis forfalte produksjoner på startsiden"
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr "Vis utestående Innkjøpsordrer"
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr "Vis utestående Innkjøpsordrer på startsiden"
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr "Vis forfalte Innkjøpsordrer"
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr "Vis forfalte Innkjøpsordrer på startsiden"
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr "Vis utestående Salgsordrer"
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr "Vis utestående Salgsordrer på startsiden"
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr "Vis forfalte SOer"
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr "Vis forfalte SOer på startsiden"
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr "Vis ventende SO-forsendelser"
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr "Vis ventende SO-forsendelser på startsiden"
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr "Vis Nyheter"
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr "Vis nyheter på startsiden"
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr "Innebygd etikettvisning"
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Vis PDF-etiketter i nettleseren fremfor å lastes ned som en fil"
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr "Standard etikettskriver"
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr "Konfigurer hvilken etikettskriver som skal være valgt som standard"
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr "Innebygd rapportvisning"
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Vis PDF-rapporter i nettleseren fremfor å lastes ned som en fil"
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr "Søk i Deler"
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr "Vis deler i forhåndsvsningsvinduet for søk"
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr "Søk i Leverandørdeler"
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr "Vis leverandørdeler i forhåndsvisningsvinduet for søk"
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr "Søk i Produsentdeler"
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr "Vis produsentdeler i forhåndsvisningsvinduet for søk"
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr "Skjul Inaktive Deler"
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr "Ekskluder inaktive deler fra forhåndsvisningsvinduet for søk"
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr "Søk i kategorier"
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr "Vis delkategorier i forhåndsvisningsvinduet for søk"
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr "Søk i lagerbeholdning"
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr "Vis lagervarer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr "Skjul utilgjengelige Lagervarer"
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Ekskluder lagervarer som ikke er tilgjengelige fra forhåndsvisningsvinduet for søk"
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr "Søk i Plasseringer"
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr "Vis lagerplasseringer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr "Søk i Firma"
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr "Vis firma i forhåndsvsningsvinduet for søk"
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr "Søk i Produksjonsordrer"
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr "Vis produksjonsordrer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr "Søk i Innkjøpsordrer"
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr "Vis innkjøpsordrer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr "Ekskluder inaktive Innkjøpsordrer"
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Ekskluder inaktive innkjøpsordrer fra forhåndsvisningsvinduet for søk"
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr "Søk i Salgsordrer"
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr "Vis salgsordrer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr "Ekskluder Inaktive Salgsordrer"
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr "Ekskluder inaktive salgsordrer fra forhåndsvisningsvinduet for søk"
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr "Søk i Returordrer"
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr "Vis returordrer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr "Ekskluder Inaktive Returordrer"
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr "Ekskluder inaktive returordrer fra forhåndsvisningsvinduet for søk"
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr "Forhåndsvisning av søkeresultater"
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr "Antall resultater å vise i hver seksjon av søkeresultatsforhåndsvisningen"
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr "Regex-søk"
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr "Aktiver regulære uttrykk i søkeord"
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr "Helordsøk"
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr "Søk returnerer resultater for treff med hele ord"
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "Vis antall i skjemaer"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr "Vis antall tilgjengelige deler i noen skjemaer"
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr "Escape-knappen lukker skjemaer"
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr "Bruk Escape-knappen for å lukke modal-skjemaer"
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr "Fast navigasjonsbar"
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr "Navigasjonsbarens posisjon er fast på toppen av skjermen"
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr "Datoformat"
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr "Foretrukket format for å vise datoer"
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Delplanlegging"
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr "Vis delplanleggingsinformasjon"
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Lagertelling for Del"
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "Vis lagertellingsinformasjon for del (om lagertellingsfunksjonalitet er aktivert)"
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr "Tabellstrenglengde"
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr "Maksimal lengdegrense for strenger vist i tabeller"
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr "Standard del etikett mal"
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr "Del etikett malen skal velges automatsik"
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr "Standard lagervarer mal"
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr "Lagervarer etikett mal skal valges automatisk"
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr "Standard lagervarer lokasjon etikett mal"
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr "Lagervarer lokasjon etikett malen skal valges automatisk"
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr "Antall for prisbrudd"
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Pris"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr "Enhetspris på spesifisert antall"
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr "Endepunkt"
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr "Endepunktet hvor denne webhooken er mottatt"
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr "Navn for webhooken"
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr "Navn for webhooken"
msgid "Active"
msgstr "Aktiv"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr "Er webhooken aktiv"
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr "Sjetong"
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr "Nøkkel for tilgang"
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr "Hemmelig"
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr "Delt hemmlighet for HMAC"
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr "Melding ID"
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr "Unik Id for denne meldingen"
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr "Vert"
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr "Verten denne meldingen ble mottatt fra"
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr "Tittel"
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr "Overskrift for denne meldingen"
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr "Brødtekst"
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr "Innholdet i meldingen"
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr "Endepunktet meldingen ble mottatt fra"
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr "Arbeidet med"
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr "Var arbeidet med denne meldingen ferdig?"
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr "Id"
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Tittel"
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr "Publisert"
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "Forfatter"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Sammendrag"
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr "Les"
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr "Er dette nyhetselementet lest?"
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr "Er dette nyhetselementet lest?"
msgid "Image"
msgstr "Bilde"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr "Bildefil"
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Ny {verbose_name}"
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr "En ny ordre har blitt opprettet og tilordnet til deg"
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr "Artikler mottatt"
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr "Artikler har blitt mottatt mot en innkjøpsordre"
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr "Artikler har blitt mottatt mot en returordre"
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr "Feil oppstått i utvidelse"
@@ -3572,7 +3571,7 @@ msgstr "Matching av felter mislyktes"
msgid "Parts imported"
msgstr "Deler importert"
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Kontakt e-post"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "Produserer dette firmaet deler?"
msgid "Default currency used for this company"
msgstr "Standardvaluta brukt for dette firmaet"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Firma"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr "Vegl bedrift"
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr "Adressetittel"
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr "Tittel som beskriver addressen"
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr "Hovedadresse"
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr "Sett som hovedadresse"
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr "Linje 1"
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr "Adresselinje 1"
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr "Linje 2"
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr "Adresselinje 2"
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr "Postnummer"
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr "Poststed/område"
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr "Postnummerets by/område"
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr "Delstat/provins"
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr "Delstat eller provins"
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr "Land"
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr "Adressens land"
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr "Notater til transportør"
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr "Notater for transportør"
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr "Interne fraktnotater"
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr "Fraktnotater for internt bruk"
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr "Lenke til adresseinformasjon (ekstern)"
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Basisdel"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Velg del"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr "Velg del"
msgid "Manufacturer"
msgstr "Produsent"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Velg produsent"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Velg produsent"
msgid "MPN"
msgstr "MPN"
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Produsentens varenummer"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr "URL for ekstern produsentdel-lenke"
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr "Produsentens delbeskrivelse"
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Produsentdeler"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Parameternavn"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Verdi"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Parameterverdi"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Enheter"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Parameterenheter"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr "Pakkeenhetene må være komptible med basisdelenhetene"
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr "Mengden må være større enn null"
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel"
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel"
msgid "Supplier"
msgstr "Leverandør"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Velg leverandør"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Velg leverandør"
msgid "SKU"
msgstr "SKU-kode"
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr "Leverandørens lagerbeholdningsenhet"
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "Velg produsentdel"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr "URL for ekstern leverandørdel-lenke"
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr "Leverandørens delbeskrivelse"
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Notat"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "grunnkostnad"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimum betaling (f.eks. lageravgift på lager)"
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr "Emballasje"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr "Delemballasje"
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr "Delemballasje"
msgid "Pack Quantity"
msgstr "Pakkeantall"
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Totall antall pakket i en enkelt pakke. La stå tomt for enkeltgjenstander."
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr "flere"
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr "Bestill flere"
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr "Antall tilgjengelig fra leverandør"
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr "Tilgjengelighet oppdatert"
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr "Dato for siste oppdatering av tilgjengelighetsdata"
@@ -4014,10 +4011,10 @@ msgstr "Last ned bilde fra URL"
msgid "Delete image"
msgstr "Slett bilde"
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Kunde"
msgid "Uses default currency"
msgstr "Bruker standardvaluta"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr "Bedriftens adresse"
msgid "Add Address"
msgstr "Legg til adresse"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Produsenter"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr "Ingen produsentinformasjon tilgjengelig"
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr "Adresser"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr "Koble strekkode til Leverandørdel"
msgid "Update Part Availability"
msgstr "Oppdater Delens Tilgjengelighet"
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr "Lagervarer"
msgid "Supplier Part Pricing"
msgstr "Leverandørdelprising"
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Ny Leverandør"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Ny Produsent"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Kunder"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Ny Kunde"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Firmaer"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Nytt Firma"
@@ -4425,7 +4422,7 @@ msgstr "Etikett"
msgid "Label template file"
msgstr "Etikett-malfil"
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Aktivert"
@@ -4449,7 +4446,7 @@ msgstr "Høyde [mm]"
msgid "Label height, specified in mm"
msgstr "Etiketthøyde, spesifisert i mm"
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr "Filnavnmønster"
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr "Søkefiltre (kommaseparert liste over nøkkel=verdi-par)"
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Filtre"
@@ -4481,7 +4478,7 @@ msgstr "QR-kode"
msgid "QR code"
msgstr "QR-kode"
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr "QR-kode"
msgid "Total Price"
msgstr "Total pris"
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr "Ingen samsvarende innkjøpsordre funnet"
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr "Ingen samsvarende innkjøpsordre funnet"
msgid "Purchase Order"
msgstr "Innkjøpsordre"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr "Innkjøpsordre"
msgid "Return Order"
msgstr "Returordre"
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr "Ukjent"
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr "Total pris for denne ordren"
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr "Ordre valuta"
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr "Valuta for denne ordren (la stå tom for å bruke firmastandard)"
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr "Kontakten samsvarer ikke med valgt firma"
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr "Ordrebeskrivelse (valgfritt)"
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr "Velg prosjektkode for denne ordren"
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr "Lenke til ekstern side"
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Forventet dato for levering av ordre. Bestillingen vil være forfalt etter denne datoen."
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr "Opprettet av"
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "Bruker eller gruppe ansvarlig for ordren"
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr "Kontaktpunkt for denne ordren"
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr "Bedriftsadresse for denne ordren"
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Ordrereferanse"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr "Status for innkjøpsordre"
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr "Firma som varene blir bestilt fra"
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr "Leverandørreferanse"
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr "Leverandør ordrereferanse"
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr "mottatt av"
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr "Utgivelsesdato"
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr "Dato bestilling ble sendt"
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr "Dato ordre ble fullført"
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr "Delleverandør må matche PO-leverandør"
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr "Mengde må være positiv"
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr "Firma som varene selges til"
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr "Kundereferanse "
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr "Kundens ordrereferanse"
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr "Leveringsdato"
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr "sendt av"
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr "Bestillingen kan ikke fullføres da ingen deler er tilordnet"
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr "Kun en åpen ordre kan merkes som fullført"
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Bestillingen kan ikke fullføres da det finnes ufullstendige varepartier"
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Denne ordren kan ikke fullføres da det fortsatt er ufullstendige artikler"
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr "Antall"
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr "Linje referanse"
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr "Linje notat"
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Måldato for denne linjen (la stå tomt for å bruke måldatoen fra ordren)"
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr "Linjeelementbeskrivelse (valgfritt)"
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr "Kontekst"
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr "Ytterligere kontekst for denne linjen"
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr "Enhetspris"
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr "Delens leverandør må samsvare med leverandør"
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr "slettet"
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr "Ordre"
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr "Leverandørdel"
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr "Leverandørdel"
msgid "Received"
msgstr "Mottatt"
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr "Antall enheter mottatt"
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Innkjøpspris"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr "Enhet-innkjøpspris"
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Hvor vil innkjøper at artikkelen skal lagres?"
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr "Virtuell del kan ikke tildeles salgsordre"
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr "Kun salgbare deler kan tildeles en salgsordre"
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "Salgspris"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr "Enhets-salgspris"
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr "Sendt antall"
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr "Dato for forsendelse"
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr "Leveringsdato"
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr "Dato for levering av forsendelse"
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr "Sjekket Av"
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr "Brukeren som sjekket forsendelsen"
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Forsendelse"
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr "Forsendelsesnummer"
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr "Sporingsnummer"
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr "Sporingsinformasjon for forsendelse"
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr "Fakturanummer"
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr "Referansenummer for tilknyttet faktura"
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr "Forsendelsen er allerede sendt"
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr "Forsendelsen har ingen tildelte lagervarer"
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr "Lagervarer er ikke blitt tildelt"
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kan ikke tildele lagervare til en linje med annen del"
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr "Kan ikke tildele lagerbeholdning til en linje uten en del"
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tildelingsantall kan ikke overstige tilgjengelig lagerbeholdning"
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr "Antall må være 1 for serialisert lagervare"
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr "Salgsordre samsvarer ikke med forsendelse"
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr "Forsendelsen samsvarer ikke med salgsordre"
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr "Linje"
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr "Forsendelsesreferanse for salgsordre"
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr "Artikkel"
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr "Velg lagervare å tildele"
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr "Angi lagertildelingsmengde"
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr "Returordre-referanse"
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr "Firmaet delen skal returneres fra"
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr "Returordrestatus"
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr "Kun serialiserte artikler kan tilordnes en Returordre"
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr "Velg artikkel som skal returneres fra kunde"
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr "Mottatt Dato"
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr "Datoen denne returartikkelen ble mottatt"
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Utfall"
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr "Utfall for dette linjeelementet"
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr "Kostnad forbundet med retur eller reparasjon for dette linjeelementet"
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr "Ordren kan ikke kanselleres"
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr "Tillat ordre å lukkes med ufullstendige linjeelementer"
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr "Ordren har ufullstendige linjeelementer"
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr "Ordren er ikke åpen"
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr "Innkjøpsvaluta"
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr "Leverandørdel må angis"
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr "Innkjøpsordre må angis"
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr "Leverandør må samsvare med innkjøpsordre"
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr "Innkjøpsordre må samsvare med leverandør"
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr "Ordrelinje"
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr "Linjeelementet samsvarer ikke med innkjøpsordre"
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr "Velg lagerplassering for mottatte enheter"
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr "Angi batchkode for innkommende lagervarer"
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr "Angi serienummer for innkommende lagervarer"
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "Strekkode"
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr "Skannet strekkode"
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr "Strekkode allerede i bruk"
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr "Heltallsverdi må angis for sporbare deler"
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr "Linjeelementer må være oppgitt"
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr "Målplassering må angis"
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr "Angitte strekkodeverdier må være unike"
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr "Valuta for salgspris"
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr "Ingen forsendelsesopplysninger oppgitt"
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr "Linjeelement er ikke knyttet til denne ordren"
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr "Mengden må være positiv"
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr "Skriv inn serienummer for å tildele"
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr "Forsendelsen er allerede sendt"
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr "Forsendelsen er ikke knyttet til denne ordren"
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr "Ingen treff funnet for følgende serienummer"
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr "Følgende serienummer er allerede tildelt"
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr "Returordrelinje"
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr "Linjeelementet samsvarer ikke med returordre"
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr "Linjeelementet er allerede mottatt"
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr "Artikler kan bare mottas mot ordrer som pågår"
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr "Valuta for linje"
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr "Forfalt Innkjøpsordre"
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "Innkjøpsordre {po} er nå forfalt"
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr "Forfalt Salgsordre"
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "Salgsordre {so} er nå forfalt"
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr "Ventende forsendelser"
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Handlinger"
@@ -5434,47 +5431,47 @@ msgstr "Oppdaterte {part} enhetspris to {price}"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "Oppdaterte {part} enhetspris til {price} og antall til {qty}"
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr "Del-ID"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr "Delnavn"
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr "Delbeskrivelse"
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr "IPN"
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr "Revisjon"
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Nøkkelord"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr "Kategori-ID"
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr "Kategorinavn"
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr "Standard posisjons-ID"
@@ -5482,11 +5479,11 @@ msgstr "Standard posisjons-ID"
msgid "Default Supplier ID"
msgstr "Standard leverandør ID"
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr "Variant av"
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "Minimum lagervare"
@@ -5496,8 +5493,8 @@ msgstr "Minimum lagervare"
msgid "In Stock"
msgstr "På lager"
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr "Brukt i"
msgid "Building"
msgstr "Produseres"
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr "Minimum kostnad"
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr "Maksimum kostnad"
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr "Overordnet ID"
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr "Overordnet navn"
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr "Sti til kategori"
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr "Sti til kategori"
msgid "Parts"
msgstr "Deler"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr "BOM-nivå"
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr "BOM artikkel-ID"
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr "Overodnet IPN"
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr "Del IPN"
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Minstepris"
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr "Makspris"
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr "Innkommende innkjøpsordre"
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr "Utgående salgsordre"
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr "Lagervarer produsert av bygg order"
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr "Lagervarer som kreves for Bygg Order"
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr "Gyldig"
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr "Godkjenn hele Stykklisten"
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr "Dette alternativet må være valgt"
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Standard plassering"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Total lagerbeholdning"
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "Tilgjengelig lagerbeholdning"
@@ -5616,7 +5613,7 @@ msgstr "Tilgjengelig lagerbeholdning"
msgid "Input quantity for price calculation"
msgstr "Sett inn antall for prisberegning"
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Delkategori"
@@ -5662,62 +5659,62 @@ msgstr "Ikon (valgfritt)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr "Du kan ikke gjøre denne delkategorien strukturell fordi noen deler allerede er tilordnet den!"
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr "Ugyldig valg for overordnet del"
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Del '{p1}' er brukt i stykklisten til '{p2}' (rekursivt)"
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "Internt delnummer må matche regex-mønster {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr "Lagervare med dette serienummeret eksisterer allerede"
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr "Duplikat av internt delnummer er ikke tillatt i delinnstillinger"
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr "Del med dette Navnet, internt delnummer og Revisjon eksisterer allerede."
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Deler kan ikke tilordnes strukturelle delkategorier!"
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Delnavn"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr "Er Mal"
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr "Er delen en maldel?"
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr "Er delen en variant av en annen del?"
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr "Delbeskrivelse (valgfritt)"
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr "Del-nøkkelord for å øke synligheten i søkeresultater"
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr "Del-nøkkelord for å øke synligheten i søkeresultater"
msgid "Category"
msgstr "Kategori"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "Delkategori"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr "Internt delnummer"
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr "Delrevisjon eller versjonsnummer"
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr "Hvor er denne artikkelen vanligvis lagret?"
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr "Standard leverandør"
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr "Standard leverandørdel"
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr "Standard utløp"
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr "Utløpstid (i dager) for lagervarer av denne delen"
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr "Minimum tillatt lagernivå"
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr "Måleenheter for denne delen"
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr "Kan denne delen bygges fra andre deler?"
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr "Kan denne delen brukes til å bygge andre deler?"
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr "Har denne delen sporing av unike artikler?"
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr "Kan denne delen kjøpes inn fra eksterne leverandører?"
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr "Kan denne delen selges til kunder?"
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr "Er denne delen aktiv?"
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Er dette en virtuell del, som et softwareprodukt eller en lisens?"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr "Kontrollsum for BOM"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr "Lagret BOM-kontrollsum"
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr "Stykkliste sjekket av"
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr "Stykkliste sjekket dato"
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr "Opprettingsbruker"
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr "Bruker ansvarlig for denne delen"
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr "Siste lagertelling"
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr "Selg flere"
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr "Valuta som brukes til å bufre prisberegninger"
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr "Minimal BOM-kostnad"
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr "Minste kostnad for komponentdeler"
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr "Maksimal BOM-kostnad"
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr "Maksimal kostnad for komponentdeler"
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr "Minimal innkjøpskostnad"
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr "Minimal historisk innkjøpskostnad"
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr "Maksimal innkjøpskostnad"
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr "Maksimal historisk innkjøpskostnad"
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr "Minimal intern pris"
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr "Minimal kostnad basert på interne prisbrudd"
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr "Maksimal intern pris"
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr "Maksimal kostnad basert på interne prisbrudd"
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr "Minimal leverandørpris"
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr "Minimumspris for del fra eksterne leverandører"
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr "Maksimal leverandørpris"
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr "Maksimalpris for del fra eksterne leverandører"
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr "Minimal Variantkostnad"
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr "Beregnet minimal kostnad for variantdeler"
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr "Maksimal Variantkostnad"
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr "Beregnet maksimal kostnad for variantdeler"
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr "Beregnet samlet minimal kostnad"
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr "Beregnet samlet maksimal kostnad"
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr "Minimal salgspris"
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr "Minimal salgspris basert på prisbrudd"
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr "Maksimal Salgspris"
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr "Maksimal salgspris basert på prisbrudd"
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr "Minimal Salgskostnad"
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr "Minimal historisk salgspris"
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr "Maksimal Salgskostnad"
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr "Maksimal historisk salgspris"
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr "Del for varetelling"
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr "Antall"
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr "Antall individuelle lagerenheter på tidspunkt for varetelling"
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling"
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling"
msgid "Date"
msgstr "Dato"
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr "Dato for utført lagertelling"
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr "Flere notater"
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr "Bruker som utførte denne lagertellingen"
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr "Minimal lagerkostnad"
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr "Estimert minimal kostnad for lagerbeholdning"
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr "Maksimal lagerkostnad"
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr "Estimert maksimal kostnad for lagerbeholdning"
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr "Rapport"
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr "Lagertellingsrapportfil (generert internt)"
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr "Antall deler"
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr "Antall deler dekket av varetellingen"
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr "Bruker som forespurte varetellingsrapporten"
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr "Testmaler kan bare bli opprettet for sporbare deler"
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr "Test med dette navnet finnes allerede for denne delen"
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr "Testnavn"
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr "Angi et navn for testen"
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr "Testbeskrivelse"
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr "Legg inn beskrivelse for denne testen"
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Påkrevd"
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr "Er det påkrevd at denne testen bestås?"
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr "Krever verdi"
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr "Krever denne testen en verdi når det legges til et testresultat?"
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr "Krever vedlegg"
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Krever denne testen et filvedlegg når du legger inn et testresultat?"
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr "Avmerkingsboks parameter kan ikke ha enheter"
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr "Avmerkingsboks parameter kan ikke har valg"
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr "Valg må være unikt"
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr "Navn på parametermal må være unikt"
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr "Parameternavn"
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr "Fysisk enheter for denne parameteren"
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr "Parameterbeskrivelse"
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr "Avmerkingsboks"
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr "Er dette parameteret en avmerkingsboks?"
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr "Valg"
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Gyldige valg for denne parameteren (kommaseparert)"
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr "Ugyldig valg for parameterverdi"
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr "Overordnet del"
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr "Parametermal"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr "Data"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr "Parameterverdi"
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr "Standardverdi"
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr "Standard Parameterverdi"
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr "Del-ID eller delnavn"
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr "Unik del-ID-verdi"
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr "Delens interne delnummerverdi"
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr "Nivå"
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr "BOM-nivå"
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "BOM-artikkel"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr "Velg overordnet del"
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr "Underordnet del"
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr "Velg del som skal brukes i BOM"
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr "BOM-antall for denne BOM-artikkelen"
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr "Denne BOM-artikkelen er valgfri"
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Denne BOM-artikkelen er forbruksvare (den spores ikke i produksjonsordrer)"
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Svinn"
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Forventet produksjonssvinn (absolutt eller prosent)"
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr "BOM-artikkelreferanse"
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr "BOM-artikkelnotater"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr "Kontrollsum"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr "BOM-linje kontrollsum"
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Godkjent"
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr "Denne BOM-artikkelen er godkjent"
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr "Arves"
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler"
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Tillat Varianter"
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Lagervarer for variantdeler kan brukes for denne BOM-artikkelen"
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr "Antall må være heltallsverdi for sporbare deler"
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr "Underordnet del må angis"
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr "BOM-artikkel erstatning"
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr "Erstatningsdel kan ikke være samme som hoveddelen"
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr "Overordnet BOM-artikkel"
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr "Erstatningsdel"
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr "Del 1"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr "Del 2"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr "Velg relatert del"
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr "Del-forhold kan ikke opprettes mellom en del og seg selv"
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr "Duplikatforhold eksisterer allerede"
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr "Innkjøpsvaluta for lagervaren"
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr "Ingen deler valgt"
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr "Velg kategori"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr "Original Del"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr "Velg original del å duplisere"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr "Kopier Bilde"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr "Kopier bilde fra originaldel"
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr "Kopier Stykkliste"
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr "Kopier stykkliste fra original del"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr "Kopier parametere"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr "Kopier parameterdata fra originaldel"
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr "Innledende lagerbeholdning"
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Angi initiell lagermengde for denne delen. Hvis antall er null, er ingen lagerbeholdning lagt til."
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr "Innledende lagerplassering"
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr "Angi initiell lagerplasering for denne delen"
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr "Velg leverandør (eller la stå tom for å hoppe over)"
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Velg produsent (eller la stå tom for å hoppe over)"
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr "Produsentens delenummer"
@@ -6378,190 +6375,190 @@ msgstr "Produsentens delenummer"
msgid "Selected company is not a valid supplier"
msgstr "Valgt firma er ikke en gyldig leverandør"
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr "Valgt firma er ikke en gyldig produsent"
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr "Produsentdel som matcher dette MPN-et, finnes allerede"
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr "Leverandørdel som matcher denne SKU-en, finnes allerede"
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr "Dupliser del"
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr "Kopier innledende data fra en annen del"
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr "Innledende lagerbeholdning"
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr "Lag en del med innledende lagermengde"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr "Leverandøropplysninger"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr "Legg til innledende leverandørinformasjon for denne delen"
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr "Kopier kategoriparametre"
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr "Kopier parametermaler fra valgt delkategori"
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr "Begrens lagerbeholdningsrapport til en bestemt del og enhver variant av delen"
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr "Begrens lagerbeholdningsrapport til en bestemt delkategori og alle underkategorier"
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr "Begrens lagerbeholdningsrapport til en bestemt plasering og eventuelle underplasseringer"
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr "Generer rapport"
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr "Genererer rapport som inneholder beregnede lagerdata"
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr "Oppdater deler"
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr "Oppdater spesifiserte deler med beregnede lagerbeholdningsdata"
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr "Lagerbeholdningsfunksjonalitet er ikke aktivert"
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr "Oppdater"
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr "Oppdater priser for denne delen"
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr "Velg del å kopiere BOM fra"
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr "Fjern eksisterende data"
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr "Fjern eksisterende BOM-artikler før kopiering"
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr "Inkluder arvet"
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr "Inkluder BOM-artikler som er arvet fra maldeler"
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr "Hopp over ugyldige rader"
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader"
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr "Kopier erstatningsdeler"
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopier erstatningsdeler når BOM elementer dupliseres"
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr "Nullstill eksisterende BOM"
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr "Fjern eksisterende BOM-artikler før opplastning"
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr "Ingen del-kolonne angitt"
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr "Flere matchende deler funnet"
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr "Ingen matchende delere funnet"
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr "Delen er ikke betegnet som en komponent"
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr "Antall ikke oppgitt"
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr "Ugyldig antall"
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr "Minst en BOM-artikkel kreves"
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr "Totalt Antall"
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr "Total Kostnad Min"
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr "Total Kostnad Max"
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr "Lagertellingsrapport tilgjengelig"
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr "En ny lagertellingsrapport er tilgjengelig for nedlasting"
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr "Godkjenn BOM"
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr "Legg til BOM-artikkel"
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr "Tildelt til Salgsordrer"
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr "Kan Produsere"
@@ -7219,11 +7216,11 @@ msgstr "Opprett ny variant av del"
msgid "Create a new variant part from this template"
msgstr "Opprett en ny variant del fra denne malen"
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr "Ukjent database"
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
@@ -7261,20 +7258,19 @@ msgstr "Ingen handling spesifisert"
msgid "No matching action found"
msgstr "Ingen samsvarende handling funnet"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr "Mangler strekkodedata"
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Ingen treff funnet for strekkodedata"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Treff funnet for strekkodedata"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr "Strekkode samsvarer med ekisterende element"
@@ -7283,52 +7279,6 @@ msgstr "Strekkode samsvarer med ekisterende element"
msgid "No match found for provided value"
msgstr "Ingen samsvar funnet for angitt verdi"
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Utskrift av etikett mislyktes"
@@ -7345,8 +7295,6 @@ msgstr "Gir innebygd støtte for strekkoder"
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr "InvenTree-bidragsytere"
@@ -7384,7 +7332,7 @@ msgstr "Slack innkommende webhook"
msgid "URL that is used to send messages to a slack channel"
msgstr "URL brukt til å sende meldinger til en Slack-kanal"
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr "Åpne lenke"
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr "Installasjonen ble ikke bekreftet"
msgid "Either packagename of URL must be provided"
msgstr "Enten pakkenavn eller URL må angis"
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr "Ingen gyldige objekter angitt for mal"
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Malfil '{template}' mangler eller eksisterer ikke"
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr "Testrapport"
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr "Malnavn"
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr "Rapportmalfil"
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr "Beskrivelse av rapportmal"
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr "Rapportrevisjonsnummer (øker automatisk)"
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr "Mønster for å generere rapportfilnavn"
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr "Rapportmal er aktiver"
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr "Lagervare-søkefilter (kommaseparert liste over nøkkel=verdi-par)"
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr "Inkluder installerte tester"
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr "Inkluder testresultater for lagervarer installert i sammenstilt artikkel"
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr "Produksjonsfiltre"
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr "Produksjons-søkefilter (kommaseparert liste over nøkkel=verdi-par"
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr "Delfiltre"
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr "Del-søkefilter (kommaseparert liste over nøkkel=verdi-par"
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr "Innkjøpsordre-søkefilter"
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr "Salgsordre-søkefilter"
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr "Returordre-søkefilter"
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr "Snutt"
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr "Rapportsnuttfil"
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr "Filbeskrivelse for snutt"
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr "Ressurs"
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr "Rapportressursfil"
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr "Ressursfilbeskrivelse"
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr "Total"
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr "Testresultater"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr "Resultat"
@@ -7891,7 +7787,7 @@ msgstr "Leverandørnavn"
msgid "Customer ID"
msgstr "Kunde-ID"
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr "Installert i"
@@ -7916,33 +7812,33 @@ msgstr "Gjennomgang kreves"
msgid "Delete on Deplete"
msgstr "Slett når oppbrukt"
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr "Utløpsdato"
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr "Antall kreves"
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr "Gyldig del må oppgis"
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr "Oppgitt leverandørdel eksisterer ikke"
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "Leverandørdelen har en pakkestørrelse definert, men flagget \"use_pack_size\" er ikke satt"
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Serienumre kan ikke angis for en ikke-sporbar del"
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr "Velg en tilsvarende leverandørdel for denne lagervaren"
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr "Hvor er denne lagervaren plassert?"
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr "Er denne artikkelen montert i en annen artikkel?"
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr "Serienummer for denne artikkelen"
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr "Batchkode for denne lagervaren"
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr "Lagerantall"
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr "Kildeproduksjon"
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr "Produksjon for denne lagervaren"
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr "Brukt av"
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr "Kildeinnkjøpsordre"
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr "Innkjøpsordre for denne lagervaren"
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr "Tildelt Salgsordre"
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Utløpsdato for lagervare. Lagerbeholdning vil bli ansett som utløpt etter denne datoen"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr "Slett når oppbrukt"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr "Slett lagervaren når beholdningen er oppbrukt"
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr "Innkjøpspris per enhet på kjøpstidspunktet"
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr "Konvertert til del"
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr "Delen er ikke angitt som sporbar"
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr "Antall må være heltall"
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({n})"
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr "Serienumre må være en liste over tall"
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr "Antallet stemmer ikke overens med serienumrene"
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "Seriernummer eksisterer allerede"
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr "Lagervare har blitt tildelt en salgsordre"
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr "Lagervare er montert i en annen artikkel"
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr "Lagervare inneholder andre artikler"
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr "Lagervare har blitt tildelt til en kunde"
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr "Lagervare er for tiden i produksjon"
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr "Serialisert lagerbeholdning kan ikke slås sammen"
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr "Duplisert lagervare"
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr "Lagervarer må referere til samme del"
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr "Lagervarer må referere til samme leverandørdel"
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr "Lagerstatuskoder må være like"
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Lagervare kan ikke flyttes fordi den ikke er på lager"
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr "Oppføringsnotater"
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr "Verdi må angis for denne testen"
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr "Vedlegg må lastes opp for denne testen"
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr "Testnavn"
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr "Testresultat"
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr "Testens verdi"
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr "Vedlegg til testresultat"
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr "Testnotater"
@@ -8231,141 +8127,141 @@ msgstr "Serienummeret er for høyt"
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Innkjøpspris for denne lagervaren, per enhet eller forpakning"
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr "Angi antall lagervarer som skal serialiseres"
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({q})"
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr "Angi serienummer for nye artikler"
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr "Til Lagerplassering"
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr "Valgfritt notatfelt"
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr "Serienummer kan ikke tilordnes denne delen"
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr "Velg lagervare å montere"
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr "Legg til transaksjonsnotat (valgfritt)"
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr "Lagervaren er utilgjengelig"
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr "Valgt del er ikke i stykklisten"
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr "Lagerplassering for den avinstallerte artikkelen"
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr "Velg del å konvertere lagervare til"
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr "Valgt del er ikke et gyldig alternativ for konvertering"
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr "Lagerplassering for returnert artikkel"
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr "Velg lagervarer for å endre status"
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr "Ingen lagervarer valgt"
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr "Delen må være salgbar"
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr "Artikkelen er tildelt en salgsordre"
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr "Artikkelen er tildelt en produksjonsordre"
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr "Kunde å tilordne lagervarer"
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr "Valgt firma er ikke en kunde"
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr "En liste av lagervarer må oppgis"
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr "Minst to lagervarer må oppgis"
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr "Lagervare primærnøkkel verdi"
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr "Følgende deler har for lav lagerbeholdning"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr "Antall som kreves"
@@ -10282,74 +10178,74 @@ msgstr "Variantbeholdning tillatt"
msgid "Substitutes"
msgstr "Erstatninger"
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr "BOM-prising er komplett"
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr "BOM-prising er ufullstendig"
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr "Ingen prising tilgjengelig"
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr "Ingen lagerbeholdning tilgjengelig"
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr "Inkluderer variant- og erstatningsbeholdning"
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr "Inkluderer variantbeholdning"
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr "Inkluderer erstatningsbeholdning"
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr "Forbruksvare"
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr "Godkjenn BOM-artikkel"
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr "Denne linjen er godkjent"
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr "Rediger erstatningsdeler"
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr "Rediger BOM-artikkel"
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr "Slett BOM-artikkel"
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr "Vis stykkliste"
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr "Ingen BOM-artikler funnet"
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr "Påkrevd del"
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr "Arvet fra overordnet stykkliste"
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index fa38e6f39b..294d250df7 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:02\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "Nie znaleziono punktu końcowego API"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Wprowadź dane"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Wprowadź dane"
msgid "Notes"
msgstr "Uwagi"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Wartość '{name}' nie pojawia się w formacie wzoru"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Podana wartość nie pasuje do wymaganego wzoru: "
@@ -103,99 +98,99 @@ msgstr "Potwierdź nowe hasło"
msgid "Old password"
msgstr "Stare hasło"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Adres email (ponownie)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Potwierdzenie adresu email"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Należy ponownie wpisać ten sam adres e-mail."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Podany podstawowy adres e-mail jest nieprawidłowy."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Podany e-mail domeny nie został zatwierdzony."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Pusty ciąg numeru seryjnego"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Podwójny numer seryjny"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Nieprawidłowy zakres grupy: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Zakres grupy {g} przekracza dozwoloną ilość ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Nieprawidłowa sekwencja grupy: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Nie znaleziono numerów seryjnych"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Liczba unikalnych numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Usuń znaczniki HTML z tej wartości"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Błąd połączenia"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Serwer odpowiedział z nieprawidłowym kodem statusu"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Wystąpił wyjątek"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Serwer odpowiedział z nieprawidłową wartością Content-Length"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Rozmiar obrazu jest zbyt duży"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Przekroczono maksymalny rozmiar pobieranego obrazu"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Zdalny serwer zwrócił pustą odpowiedź"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Podany adres URL nie jest poprawnym plikiem obrazu"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr "Adres E-Mail"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Nieprawidłowo sformatowany wzór"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Określono nieznany format klucza"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Brak wymaganego formatu klucza"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Pole odniesienia nie może być puste"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Odniesienie musi być zgodne z wymaganym wzorem"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Numer odniesienia jest zbyt duży"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Brak pliku"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Brak zewnętrznego odnośnika"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Załącznik"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Wybierz plik do załączenia"
msgid "Link"
msgstr "Łącze"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Komentarz"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Użytkownik"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "data przesłania"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Nazwa pliku nie może być pusta"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Nieprawidłowy katalog załącznika"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Nazwa pliku zawiera niedozwolony znak '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Brak rozszerzenia w nazwie pliku"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Załącznik o tej nazwie już istnieje"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Błąd zmiany nazwy pliku"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Błędny wybór"
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Nazwa"
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Opis (opcjonalny)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Ścieżka"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Dane kodu kreskowego"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Dane kodu kreskowego stron trzecich"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Hasz kodu kreskowego"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Unikalny hasz danych kodu kreskowego"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Znaleziono istniejący kod kreskowy"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Błąd serwera"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Błąd został zapisany w logach serwera."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Waluta"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Nazwa pliku"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Nieprawidłowa wartość"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Plik danych"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Wybierz plik danych do przesłania"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Nieobsługiwany typ pliku"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Plik jest zbyt duży"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Nie znaleziono kolumn w pliku"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Nie znaleziono wierszy danych w pliku"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Nie podano wierszy danych"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Nie podano kolumn danych"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Brakuje wymaganej kolumny: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Zduplikowana kolumna: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "Adres URL zdalnego pliku obrazu"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone"
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Sprawdzenie robotnika w tle nie powiodło się"
@@ -688,7 +683,7 @@ msgstr "Zwrócone"
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Nieprawidłowy kod waluty"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Wartość przedawnienia nie może być ujemna"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Przedawnienie nie może przekroczyć 100 %"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Nieprawidłowa wartość przedawnienia"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Edytuj informacje użytkownika"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Ustaw hasło"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Hasła muszą być zgodne"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Podano nieprawidłowe hasło"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Informacja systemowa"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "O InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięta"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr "Opcjonalne"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Przydzielono"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Nieprawidłowy wybór kompilacji nadrzędnej"
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Odwołanie do zamówienia sprzedaży"
msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Status budowania"
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Kod partii"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Docelowy termin zakończenia"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Docelowa data zakończenia kompilacji. Po tej dacie kompilacja będzie zaległa."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Data zakończenia"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Kolejność kompilacji {build} została zakończona"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Kolejność kompilacji została zakończona"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Budowanie wyjścia jest już ukończone"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "Ilość"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Numer seryjny"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr "Lokalizacja"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr "Status"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Akceptuj niekompletne"
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "Towar musi znajdować się w magazynie"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Magazyn, z którego mają być pozyskane elementy (pozostaw puste, aby pobrać z dowolnej lokalizacji)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Wyklucz lokalizację"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Wyklucz produkty magazynowe z wybranej lokalizacji"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Towary magazynowe w wielu lokalizacjach mogą być stosowane zamiennie"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Zastępczy magazyn"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr "Źródło magazynu"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Przeznaczenie"
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr "Ustawienia wartości"
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr "Wartość musi być wartością binarną"
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr "Wartość musi być liczbą całkowitą"
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "Ciąg musi być unikatowy"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Brak grupy"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Wymagane ponowne uruchomienie"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr "Zmieniono ustawienie, które wymaga restartu serwera"
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr "Użyj nazwy instancji"
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Nazwa firmy"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Wewnętrzna nazwa firmy"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "Bazowy URL"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "Bazowy adres URL dla instancji serwera"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Domyślna waluta"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "dni"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Pobierz z adresu URL"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Obsługa kodu kreskowego"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr "Wyrażenie regularne IPN"
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Zezwól na powtarzający się IPN"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "Zezwól na edycję IPN"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr "Skopiuj BOM komponentu"
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Szablon"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Złożenie"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Komponent"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Możliwość zakupu"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Możliwość sprzedaży"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Możliwość śledzenia"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Wirtualny"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Części są domyślnie wirtualne"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Ceny wewnętrzne"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Włącz drukowanie etykiet"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Włącz drukowanie etykiet z interfejsu WWW"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "DPI etykiety"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr "Włącz raporty"
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Tryb Debugowania"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Rozmiar strony"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Domyślna wielkość strony dla raportów PDF"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr "Włącz generowanie raportów testów"
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr "Włącz opcję zapomnianego hasła"
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr "Włącz funkcję zapomnianego hasła na stronach logowania"
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr "Włącz rejestrację"
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania"
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "Włącz SSO"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "Włącz SSO na stronach logowania"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Adres e-mail jest wymagany"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr "Autouzupełnianie użytkowników SSO"
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO"
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "E-mail dwa razy"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail"
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Hasło dwukrotnie"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło"
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr "Grupuj przy rejestracji"
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr "Wymuś MFA"
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych."
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr "Sprawdź wtyczki przy starcie"
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr "Włącz integrację URL"
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr "Włącz wtyczki, aby dodać ścieżki URL"
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr "Włącz integrację z aplikacją"
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr "Włącz wtyczki, aby dodać aplikacje"
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania"
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter"
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr "Pokaż obserwowane części"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr "Pokaż obserwowane części na stronie głównej"
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "Pokaż obserwowane kategorie"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr "Pokaż obserwowane kategorie części na stronie głównej"
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Pokaż najnowsze części"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Pokaż najnowsze części na stronie głównej"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Pokaż niski stan magazynowy"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Pokaż elementy o niskim stanie na stronie głównej"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Pokaż wymagany stan zapasów"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr "Szukaj części"
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr "Ukryj nieaktywne części"
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "Pokaż ilość w formularzach"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr "Stały pasek nawigacyjny"
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr "Format daty"
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr "Preferowany format wyświetlania dat"
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Planowanie komponentów"
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Cena"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr "Punkt końcowy"
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr "Aktywny"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr "Sekret"
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr "Współdzielony sekret dla HMAC"
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr "Id wiadomości"
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr "Unikalny identyfikator dla tej wiadomości"
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr "Host, od którego otrzymano tę wiadomość"
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr "Nagłówek"
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr "Nagłówek tej wiadomości"
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr "Zawartość"
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "Autor"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr "Obraz"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Kontaktowy adres e-mail"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "Czy to przedsiębiorstwo produkuje części?"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Firma"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Część bazowa"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Wybierz część"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr "Wybierz część"
msgid "Manufacturer"
msgstr "Producent"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Wybierz producenta"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Wybierz producenta"
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Numer producenta komponentu"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Komponent producenta"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Wartość"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Jednostki"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Jednostki parametru"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr "Dostawca"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Wybierz dostawcę"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Wybierz dostawcę"
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr "Opakowanie"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr "Opakowanie części"
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr "wielokrotność"
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr "Pobierz obraz z adresu URL"
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Klient"
msgid "Uses default currency"
msgstr "Używa domyślnej waluty"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Producenci"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr "Towary"
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Nowy dostawca"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Now producent"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Klienci"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Nowy klient"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Firmy"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Nowa firma"
@@ -4425,7 +4422,7 @@ msgstr "Etykieta"
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Aktywne"
@@ -4449,7 +4446,7 @@ msgstr "Wysokość [mm]"
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr "Wzór nazwy pliku"
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Filtry"
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr "Cena całkowita"
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr "Zlecenie zakupu"
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr "Link do zewnętrznej witryny"
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr "Utworzony przez"
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Odniesienie zamówienia"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr "Status zamówienia zakupu"
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr "odebrane przez"
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr "Data wydania"
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr "Data wystawienia zamówienia"
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr "Wartość musi być liczbą dodatnią"
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr "Data wysyłki"
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr "wysłane przez"
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr "Ilość elementów"
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr "Zamówienie"
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr "Odebrane"
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Cena zakupu"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr "Cena zakupu jednostkowego"
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Gdzie kupujący chce przechowywać ten przedmiot?"
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "Cena sprzedaży"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr "Jednostkowa cena sprzedaży"
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr "Wysłana ilość"
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr "Data wysyłki"
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr "Sprawdzone przez"
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr "Użytkownik, który sprawdził tę wysyłkę"
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Przesyłka"
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr "Numer przesyłki"
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr "Numer śledzenia"
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr "Informacje o śledzeniu przesyłki"
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr "Przesyłka została już wysłana"
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr "Linia"
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr "Komponent"
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr "Zamówienie nie może zostać anulowane"
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "Kod kreskowy"
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr "Oczekujące przesyłki"
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Akcje"
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr "ID komponentu"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr "Nazwa komponentu"
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr "Wersja"
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr "ID kategorii"
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr "Wariant"
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
@@ -5496,8 +5493,8 @@ msgstr "Minimalny stan magazynowy"
msgid "In Stock"
msgstr "Na stanie"
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr "Użyte w"
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr "Ścieżka kategorii"
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr "Ścieżka kategorii"
msgid "Parts"
msgstr "Części"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr "IPN komponentu"
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr "Ważny"
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr "Ta opcja musi być zaznaczona"
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Domyślna lokalizacja"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "Dostępna ilość"
@@ -5616,7 +5613,7 @@ msgstr "Dostępna ilość"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Kategoria komponentu"
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr "Nieprawidłowy wybór dla części nadrzędnej"
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Część '{p1}' jest używana w BOM dla '{p2}' (rekursywne)"
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN musi być zgodny z wyrażeniem regularnym {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Nazwa komponentu"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr "Czy szablon"
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr "Czy ta część stanowi szablon części?"
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr "Czy ta część jest wariantem innej części?"
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr "Domyślne wygasanie"
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr "Czy ten komponent może być zbudowany z innych komponentów?"
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr "Czy ta część może być użyta do budowy innych części?"
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr "Czy ta część wymaga śledzenia każdego towaru z osobna?"
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr "Czy ta część jest aktywna?"
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Czy to wirtualna część, taka jak oprogramowanie lub licencja?"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr "Tworzenie użytkownika"
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr "Ostatnia inwentaryzacja"
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr "Data"
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr "Testowy opis"
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr "Wprowadź opis do tego testu"
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr "Wymaga wartości"
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr "Wymaga załącznika"
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr "Część nadrzędna"
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr "Dane"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr "Wartość parametru"
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr "Unikalny wartość ID komponentu"
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr "Wartość IPN części"
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr "Poziom"
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "Element BOM"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr "Wybierz część nadrzędną"
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr "Ten element BOM jest opcjonalny"
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr "Notatki pozycji BOM"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Zatwierdzone"
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Zezwalaj na warianty"
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr "Część zastępcza"
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr "Waluta zakupu tego towaru"
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr "Kopiuj obraz"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr "Kopiuj BOM"
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr "Kopiuj parametry"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr "Duplikuj część"
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr "Usuń istniejące dane"
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr "Pomiń nieprawidłowe wiersze"
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze"
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr "Wyczyść istniejący BOM"
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr "Nie podano ilości"
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr "Nieprawidłowa ilość"
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr "Weryfikuj BOM"
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr "Dodaj część do BOM"
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr "Przypisane do zamówień sprzedaży"
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr "Nieznana baza danych"
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr "Nie określono działania"
msgid "No matching action found"
msgstr "Nie znaleziono pasującej akcji"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Nie znaleziono wyników dla danych kodu kreskowego"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Znaleziono wyniki dla danych kodu kreskowego"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr "Nazwa wtyczki"
msgid "Is the plugin active"
msgstr "Czy wtyczka jest aktywna"
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr "Zainstalowane"
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr "Wtyczka"
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr "Instalacja nie została potwierdzona"
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr "Nazwa szablonu"
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr "Filtr części"
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr "Wycinek"
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr "Razem"
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr "Wynik"
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr "Zainstalowane w"
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr "Data ważności"
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr "Lokacje stanu magazynowego"
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr "Właściciel"
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr "Wybierz właściciela"
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr "Nadrzędny towar"
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr "Część podstawowa"
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr "Wybierz pasującą część dostawcy dla tego towaru"
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr "Ilość w magazynie"
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr "Usuń po wyczerpaniu"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr "Ilość musi być liczbą całkowitą"
-#: stock/models.py:1454
+#: stock/models.py:1485
#, 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:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr "Notatki do wpisu"
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr "Należy podać wartość dla tego testu"
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr "Nazwa testu"
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr "Wynik testu"
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr "Część musi być dostępna do sprzedaży"
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr "Wymagana ilość"
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr "Zobacz BOM"
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 0e317a49f1..461daaaede 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-13 01:16\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API endpoint não encontrado"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Usuário não tem permissão para ver este modelo"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Nenhum valor fornecido"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Detalhes do erro podem ser encontrados no painel de administrador"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Insira uma Data"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Insira uma Data"
msgid "Notes"
msgstr "Anotações"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Valor '{name}' não está no formato correto"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "O valor fornecido não corresponde ao padrão exigido: "
@@ -103,99 +98,99 @@ msgstr "Confirmar nova senha"
msgid "Old password"
msgstr "Senha atual"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "E-mail (novamente)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Confirmação do endereço de email"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Você deve digitar o mesmo e-mail todas as vezes."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "O endereço primário de e-mail não é válido."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "O domínio de e-mail providenciado não foi aprovado."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "Cadastro está desativado."
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Quantidade fornecida inválida"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Número serial em branco"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Número de série duplicado"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Número de grupo inválido:{g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Intervalo de grupos {g} excede a quantidade permitida ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Sequência de grupo inválida:{g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Nenhum número de série foi encontrado"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "O número de números de série únicos ({s}) deve corresponder à quantidade ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Remova as \"tags\" HTML deste valor"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Erro de conexão"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "O servidor respondeu com código estado inválido"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Ocorreu uma exceção"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "O servidor respondeu com valor inválido do tamanho de conteúdo"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Tamanho da imagem muito grande"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "O download da imagem excedeu o tamanho máximo"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "O servidor remoto retornou resposta vazia"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "A URL fornecida não é um arquivo de imagem válido"
@@ -211,64 +206,64 @@ msgstr "[{site.name}] Acesse no aplicativo"
msgid "Email"
msgstr "Email"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "Metadados deve ser um objeto dict python"
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Metadados da Extensão"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "Campo de metadados JSON, para uso por extensões externas"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Padrão formatado incorretamente"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Chave de formato desconhecida especificada"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Chave de formato obrigatória ausente"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "O campo de referência não pode ficar vazio"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "A referência deve corresponder ao padrão exigido"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "O número de referência é muito grande"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Arquivo ausente"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Link externo não encontrado"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Anexo"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Selecione arquivo para anexar"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Selecione arquivo para anexar"
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Link para URL externa"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Comentario"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Comentario sobre arquivo"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Usuario"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "data de upload"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Nome do arquivo nao pode estar vazio"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Diretorio para anexo invalido"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Arquivo contem characteres ilegais '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Arquivo sem extensao"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Anexo ja existe"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Erro renomeando o arquivo"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Nomes duplicados não podem existir sob o mesmo parental"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Escolha inválida"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Escolha inválida"
msgid "Name"
msgstr "Nome"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Nome"
msgid "Description"
msgstr "Descrição"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Descrição (opcional)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "parent"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Caminho"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Notas Markdown (opcional)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Dados de código de barras"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Dados de código de barras de terceiros"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Hash de código de barras"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Hash exclusivo de dados de código de barras"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Código de barras existente encontrado"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Erro de servidor"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Log de erro salvo pelo servidor."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Preicsa ser um numero valido"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Moeda"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Selecione a Moeda nas opções disponíveis"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Nome do arquivo"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Valor inválido"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Arquivo de dados"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Selecione um arquivo de dados para enviar"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Tipo de arquivo não suportado"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "O arquivo é muito grande"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Nenhuma coluna encontrada no arquivo"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Nenhuma linha de dados encontrada no arquivo"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Nenhuma linha de dados fornecida"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Nenhuma coluna de dados fornecida"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Falta a coluna obrigatória: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Coluna duplicada: \"{col}\""
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "Endereço da URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL do arquivo de imagem remoto"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Baixar imagens de URL remota não está habilitado"
@@ -639,7 +634,7 @@ msgstr "Chinês (Simplificado)"
msgid "Chinese (Traditional)"
msgstr "Chinês (Tradicional)"
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Falha em verificar o histórico do trabalhador"
@@ -688,7 +683,7 @@ msgstr "Retornado"
msgid "In Progress"
msgstr "Em Progresso"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Reembolsar"
msgid "Reject"
msgstr "Recusar"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr "Unidade física inválida"
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Não é um código de moeda válido"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Valor excedente não deve ser negativo"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Excedente não deve exceder 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Valor de excedente inválido"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Editar informações do usuário"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Definir senha"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Os campos de senha devem coincidir"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Senha incorreta fornecida"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Informação do Sistema"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Sobre o InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Produção deve ser cancelada antes de ser deletada"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "Consumível"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "Consumível"
msgid "Optional"
msgstr "Opcional"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr "Monitorado"
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Alocado"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Escolha de Produção parental inválida"
msgid "Build Order Reference"
msgstr "Referência do pedido de produção"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Pedido de produção para qual este serviço está alocado"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Pedido de produção para qual este serviço está alocado"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Referência do pedido de venda"
msgid "SalesOrder to which this build is allocated"
msgstr "Pedido de Venda para qual esta produção está alocada"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Progresso da produção"
msgid "Build status code"
msgstr "Código de situação da produção"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Código de Lote"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Código do lote para esta saída de produção"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Data alvo final"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Data alvo para finalização de produção. Estará atrasado a partir deste dia."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Data de conclusão"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Usuário que emitiu este pedido de produção"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Usuário ou grupo responsável para este pedido de produção"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Prioridade de Produção"
msgid "Priority of this build order"
msgstr "Prioridade deste pedido de produção"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "Código do projeto"
msgid "Project code for this build order"
msgstr "Código do projeto para este pedido de produção"
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "O Pedido de produção {build} foi concluído!"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Um pedido de produção foi concluído"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Nenhuma saída de produção especificada"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Saída de produção já completada"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Saída da produção não corresponde ao Pedido de Produção"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "Quantidade deve ser maior que zero"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr "Quantidade não pode ser maior do que a quantidade de saída"
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr "Objeto de produção"
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr "Objeto de produção"
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr "Objeto de produção"
msgid "Quantity"
msgstr "Quantidade"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr "Quantidade necessária para o pedido de produção"
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Item de produção deve especificar a saída, pois peças mestres estão marcadas como rastreáveis"
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "O item do estoque está sobre-alocado"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Quantidade alocada deve ser maior que zero"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Quantidade deve ser 1 para estoque serializado"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr "Item estoque selecionado não coincide com linha da LDM"
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr "Item estoque selecionado não coincide com linha da LDM"
msgid "Stock Item"
msgstr "Item de estoque"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Origem do item em estoque"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Quantidade do estoque para alocar à produção"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Instalar em"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Destino do Item do Estoque"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Saída da Produção"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "Saída de produção não coincide com a produção progenitora"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "Peça de saída não coincide com a peça da ordem de produção"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Esta saída de produção já foi concluída"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "A saída de produção não está completamente alocada"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Entre a quantidade da saída de produção"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Quantidade inteira necessária para peças rastreáveis"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Quantidade inteira necessária, pois a lista de materiais contém peças rastreáveis"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Números de Série"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Digite os números de série para saídas de produção"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Alocar Números de Série Automaticamente"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Alocar automaticamente os itens necessários com os números de série correspondentes"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "Os seguintes números de série já existem ou são inválidos"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "Uma lista de saídas de produção deve ser fornecida"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "Uma lista de saídas de produção deve ser fornecida"
msgid "Location"
msgstr "Local"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr "Local de estoque para saídas recicladas"
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr "Descartar alocações"
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Descartar quaisquer alocações de estoque para saídas sucateadas"
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr "Motivo para sucatear saída(s) de produção"
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "Local para saídas de produção concluídas"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr "Local para saídas de produção concluídas"
msgid "Status"
msgstr "Situação"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "Aceitar Alocação Incompleta"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Concluir saídas se o estoque não tiver sido totalmente alocado"
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr "Remover Estoque Alocado"
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Subtrair qualquer estoque que já tenha sido alocado para esta produção"
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "Remover Saídas Incompletas"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr "Excluir quaisquer saídas de produção que não tenham sido completadas"
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr "Não permitido"
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr "Aceitar conforme consumido por esta ordem de produção"
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr "Desatribua antes de completar este pedido de produção"
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr "Estoque sobrealocado"
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Como deseja manejar itens de estoque extras atribuídos ao pedido de produção"
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr "Alguns itens de estoque foram sobrealocados"
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "Aceitar não alocados"
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Aceitar que os itens de estoque não foram totalmente alocados para esta produção"
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "Estoque obrigatório não foi totalmente alocado"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Aceitar Incompleto"
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Aceitar que o número requerido de saídas de produção não foi concluído"
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "Quantidade de produção requerida não foi concluída"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "Pedido de produção tem saídas incompletas"
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr "Linha de produção"
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "Saída da Produção"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "Saída de produção deve indicar a mesma produção"
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr "Item da linha de produção"
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "bin_item.part deve indicar a mesma peça do pedido de produção"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "Item deve estar em estoque"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantidade disponível ({q}) excedida"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Saída de produção deve ser definida para alocação de peças rastreadas"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Saída de produção deve ser definida para alocação de peças não rastreadas"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "O item em estoque já foi alocado para essa saída de produção"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "Alocação do Item precisa ser fornecida"
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Local de estoque onde peças serão extraídas (deixar em branco para qualquer local)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Local não incluso"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Não incluir itens de estoque deste local"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "Estoque permutável"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Itens de estoque em múltiplos locais pode ser permutável"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Substituir Estoque"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "Permitir alocação de peças substitutas"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr "Itens opcionais"
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr "Alocar itens LDM opcionais para o pedido de produção"
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "Estoque obrigatório para o pedido de produção"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr "Pedido de produção vencido"
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr "Pedido de produção {bo} está atrasada"
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Estoque não foi totalmente alocado para este Pedido de Produção"
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr "Saídas Concluídas"
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr "Origem do estoque"
msgid "Stock can be taken from any available location."
msgstr "O estoque pode ser tirado de qualquer local disponível."
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Destino"
@@ -2014,1372 +2013,1372 @@ msgstr "Atualizado"
msgid "Timestamp of last update"
msgstr "Tempo da última atualização"
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr "Código único do projeto"
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr "Descrição do projeto"
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas)"
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr "Valor da Configuração"
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr "Valor escolhido não é uma opção válida"
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr "Valor deve ser um valor booleano"
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr "Valor deve ser um número inteiro"
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "A frase senha deve ser diferenciada"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Nenhum grupo"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr "Um domínio vazio não é permitido."
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nome de domínio inválido: {domain}"
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Reinicialização necessária"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr "Uma configuração que requer uma reinicialização do servidor foi alterada"
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr "Nome da Instância do Servidor"
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr "Descritor de frases para a instância do servidor"
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr "Usar nome da instância"
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr "Usar o nome da instância na barra de título"
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr "Restringir a exibição 'sobre'"
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr "Mostrar 'sobre' modal apenas para superusuários"
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Nome da empresa"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Nome interno da Empresa"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "URL de Base"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "URL Base da instância do servidor"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Moeda Padrão"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr "Selecione a moeda base para cálculos de preços"
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "dias"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Baixar do URL"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Permitir baixar imagens remotas e arquivos de URLs externos"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr "Limite de tamanho para baixar"
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr "Maior tamanho de imagem remota baixada permitida"
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr "Usuário-agente utilizado para baixar da URL"
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr "Permitir a substituição de imagens e arquivos usados baixados por usuário-agente (deixar em branco por padrão)"
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Exigir confirmação"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Exigir confirmação explícita do usuário para uma certa ação."
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr "Profundidade da árvore"
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr "Profundidade padrão de visualização da árvore. Níveis mais profundos podem ser carregados gradualmente conforme necessário."
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr "Atualizar Intervalo de Verificação"
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr "Frequência para verificar atualizações (defina como zero para desativar)"
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Cópia de Segurança Automática"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Ativar cópia de segurança automática do banco de dados e arquivos de mídia"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Intervalo de Backup Automático"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr "Especificar o número de dia entre as cópias de segurança"
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr "Intervalo para Excluir da Tarefa"
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr "Os resultados da tarefa no plano de fundo serão excluídos após um número especificado de dias"
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr "Intervalo para Excluir do Registro de Erro"
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr "Registros de erros serão excluídos após um número especificado de dias"
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr "Intervalo para Excluir de Notificação"
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr "Notificações de usuários será excluído após um número especificado de dias"
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Suporte aos códigos de barras"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr "Atraso na entrada de código de barras"
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr "Tempo de atraso de processamento de entrada de barras"
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr "Suporte a código de barras via Câmera"
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr "Permitir escanear código de barras por câmera pelo navegador"
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr "Revisões de peças"
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr "Habilitar campo de revisão para a Peça"
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr "Regex IPN"
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr "Padrão de expressão regular adequado para Peça IPN"
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Permitir Duplicação IPN"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr "Permitir que várias peças compartilhem o mesmo IPN"
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "Permitir Edição IPN"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr "Permitir trocar o valor do IPN enquanto se edita a peça"
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr "Copiar dados da LDM da Peça"
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr "Copiar dados da LDM por padrão quando duplicar a peça"
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr "Copiar Dados de Parâmetro da Peça"
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr "Copiar dados de parâmetros por padrão quando duplicar uma peça"
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr "Copiar Dados Teste da Peça"
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr "Copiar dados de teste por padrão quando duplicar a peça"
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr "Copiar Parâmetros dos Modelos de Categoria"
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr "Copiar parâmetros do modelo de categoria quando criar uma peça"
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Modelo"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "Peças são modelos por padrão"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Montagem"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr "Peças podem ser montadas a partir de outros componentes por padrão"
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Componente"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "Peças podem ser usadas como sub-componentes por padrão"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Comprável"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Peças são compráveis por padrão"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Vendível"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Peças vão vendíveis por padrão"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Rastreável"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Peças vão rastreáveis por padrão"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Virtual"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Peças são virtuais por padrão"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr "Mostrar Importações em Visualizações"
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr "Exibir o assistente de importação em algumas visualizações de partes"
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Mostra peças relacionadas"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Mostrar peças relacionadas para uma peça"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr "Dados Iniciais de Estoque"
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr "Permitir Criação de estoque inicial quando adicional uma nova peça"
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Dados Iniciais de Fornecedor"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr "Permitir criação de dados iniciais de fornecedor quando adicionar uma nova peça"
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Formato de Exibição do Nome da Peça"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Formato para exibir o nome da peça"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr "Ícone de Categoria de Peça Padrão"
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr "Ícone padrão de categoria de peça (vazio significa sem ícone)"
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr "Forçar Unidades de Parâmetro"
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr "Se as unidades são fornecidas, os valores do parâmetro devem corresponder às unidades especificadas"
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr "Mínimo de Casas Decimais do Preço"
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr "Mínimo número de casas decimais a exibir quando renderizar dados de preços"
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr "Máximo Casas Decimais de Preço"
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr "Número máximo de casas decimais a exibir quando renderizar dados de preços"
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr "Usar Preços do Fornecedor"
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr "Incluir quebras de preço do fornecedor nos cálculos de preços globais"
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr "Sobrescrever histórico de compra"
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr "Histórico do pedido de compra substitui os intervalos dos preços do fornecedor"
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr "Usar Preços do Item em Estoque"
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr "Usar preço inserido manualmente no estoque para cálculos de valores"
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr "Idade do preço do Item em Estoque"
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr "Não incluir itens em estoque mais velhos que este número de dias no cálculo de preços"
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr "Usar Preço Variável"
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr "Incluir preços variáveis nos cálculos de valores gerais"
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr "Apenas Ativar Variáveis"
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr "Apenas usar peças variáveis ativas para calcular preço variáveis"
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr "Intervalo de Reconstrução de Preços"
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr "Número de dias antes da atualização automática dos preços das peças"
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Preços Internos"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr "Habilitar preços internos para peças"
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr "Sobrepor Valor Interno"
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr "Se disponível, preços internos sobrepõe variação de cálculos de preço"
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Ativar impressão de etiquetas"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Ativar impressão de etiqueta pela interface da internet"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "DPI da Imagem na Etiqueta"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr "Resolução de DPI quando gerar arquivo de imagens para fornecer à extensão de impressão de etiquetas"
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr "Habilitar Relatórios"
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr "Ativar geração de relatórios"
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Modo de depuração"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr "Gerar relatórios em modo de depuração (saída HTML)"
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Tamanho da página"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Tamanho padrão da página PDF para relatórios"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr "Ativar Relatórios Teste"
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr "Ativar geração de relatórios de teste"
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr "Anexar Relatórios de Teste"
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr "Quando imprimir um Relatório de Teste, anexar uma cópia do mesmo ao item de estoque associado"
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr "Seriais Únicos Globais"
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr "Números de série para itens de estoque devem ser globalmente únicos"
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr "Preenchimento automático de Números Seriais"
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr "Preencher números de série automaticamente no formulário"
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr "Excluir Estoque Esgotado"
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr "Determina o comportamento padrão quando um item de estoque é esgotado"
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr "Modelo de Código de Lote"
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr "Modelo para gerar códigos de lote padrão para itens de estoque"
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr "Validade do Estoque"
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr "Ativar função de validade de estoque"
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr "Vender estoque expirado"
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr "Permitir venda de estoque expirado"
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr "Tempo de Estoque Inativo"
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr "Número de dias em que os itens em estoque são considerados obsoleto antes de vencer"
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr "Produzir Estoque Vencido"
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr "Permitir produção com estoque vencido"
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr "Controle de propriedade do estoque"
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr "Ativar controle de propriedade sobre locais e itens de estoque"
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr "Ícone padrão do local de estoque"
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr "Ícone padrão de local de estoque (vazio significa sem ícone)"
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr "Mostrar Itens de Estoque Instalados"
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr "Exibir itens de estoque instalados nas tabelas de estoque"
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Produção"
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr "Modelo necessário para gerar campo de referência do Pedido de Produção"
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr "Ativar Pedidos de Devolução"
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr "Ativar funcionalidade de pedido de retorno na interface do usuário"
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Devolução"
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr "Modelo necessário para gerar campo de referência do Pedido de Devolução"
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr "Editar os Pedidos de Devolução Concluídos"
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr "Permitir a edição de pedidos de devolução após serem enviados ou concluídos"
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Venda"
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr "Modelo necessário para gerar campo de referência do Pedido de Venda"
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr "Envio Padrão de Pedidos de Venda"
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr "Habilitar criação de envio padrão com Pedidos de Vendas"
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr "Editar os Pedidos de Vendas concluídos"
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Permitir a edição de pedidos de vendas após serem enviados ou concluídos"
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Compras"
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Modelo necessário para gerar campo de referência do Pedido de Compra"
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr "Editar Pedidos de Compra Concluídos"
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Permitir a edição de pedidos de compras após serem enviados ou concluídos"
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr "Habitar esquecer senha"
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr "Habilitar a função \"Esqueci minha senha\" nas páginas de acesso"
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr "Habilitar cadastro"
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr "Ativar auto-registro para usuários na página de entrada"
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr "Ativar SSO"
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr "Ativar SSO na página de acesso"
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr "Ativar registro SSO"
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Ativar auto-registro por SSO para usuários na página de entrada"
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Email obrigatório"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr "Exigir do usuário o e-mail no cadastro"
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr "Auto-preencher usuários SSO"
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Preencher automaticamente os detalhes do usuário a partir de dados da conta SSO"
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "Enviar email duplo"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr "No registro pedir aos usuários duas vezes pelo email"
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Senha duas vezes"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr "No registro pedir aos usuários duas vezes pela senha"
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Domínios permitidos"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Restringir registros a certos domínios (separados por vírgula, começando com @)"
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr "Grupo no cadastro"
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr "Grupo ao qual novos usuários são atribuídos no registro"
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr "Forçar AMF"
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr "Os usuários devem usar uma segurança multifator."
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr "Checar extensões no início"
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Checar que todas as extensões instaladas no início — ativar em ambientes de contêineres"
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr "Ativar integração URL"
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr "Ativar extensão para adicionar rotas URL"
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr "Ativar integração de navegação"
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr "Ativar extensões para integrar à navegação"
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr "Ativa integração com aplicativo"
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr "Ativar extensões para adicionar aplicativos"
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr "Ativar integração do calendário"
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr "Ativar extensões para executar tarefas agendadas"
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr "Ativar integração de eventos"
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr "Ativar extensões para responder a eventos internos"
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr "Habilitar códigos de projeto"
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr "Ativar códigos de projeto para rastrear projetos"
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr "Funcionalidade de Balanço do Inventário"
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr "Ativar funcionalidade de balanço para gravar níveis de estoque e calcular seu valor"
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr "Excluir Locais Externos"
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Excluir itens de estoque em locais externos dos cálculos do estoque"
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr "Período de Balanço Automático"
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr "Número de dias entre gravação do balanço de estoque (coloque zero para desativar)"
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr "Intervalo para Excluir o Relatório"
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "Relatórios de balanço serão apagados após um número de dias especificado"
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas"
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr "Ocultar peças inativas"
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Ocultar peças inativas nos resultados exibidos na página inicial"
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr "Mostrar peças subscritas"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr "Mostrar peças subscritas na tela inicial"
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "Mostrar categorias subscritas"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr "Mostrar categorias de peças subscritas na tela inicial"
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Mostrar peças mais recentes"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Mostrar as peças mais recentes na página inicial"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr "Mostrar LDMs não validadas"
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr "Mostrar LDMs que aguardam validação na página inicial"
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr "Mostrar alterações recentes de estoque"
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr "Mostrar itens de estoque alterados recentemente na página inicial"
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Mostrar estoque baixo"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Mostrar itens de baixo estoque na página inicial"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr "Mostrar estoque esgotado"
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr "Mostrar itens sem estoque na página inicial"
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Mostrar estoque necessário"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr "Mostrar itens de estoque necessários para produções na tela inicial"
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr "Mostrar estoque expirado"
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr "Mostrar expirados itens em estoque na tela inicial"
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr "Mostrar estoque inativo"
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr "Mostrar estoque inativo na tela inicial"
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr "Mostrar produções pendentes"
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr "Mostrar produções pendentes na tela inicial"
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr "Mostrar produções atrasadas"
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr "Mostrar produções atrasadas na tela inicial"
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr "Mostrar pedidos de compra pendentes"
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr "Mostrar os Pedidos de Compras pendentes na página inicial"
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr "Mostrar Pedidos de Compra atrasados"
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr "Mostrar os Pedidos de Compras atrasadas na tela inicial"
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr "Mostrar pedidos de vendas pendentes"
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr "Mostrar os Pedidos de Vendas pendentes na página inicial"
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr "Mostrar Pedidos de Venda atrasados"
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr "Mostrar os Pedidos de Vendas atrasadas na tela inicial"
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr "Mostrar remessas de OV pendentes"
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr "Mostrar envios OV pendentes na tela inicial"
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr "Mostrar notícias"
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr "Mostrar notícias na tela inicial"
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr "Mostrar etiqueta em linha"
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Mostrar etiquetas em PDF no navegador, ao invés de baixar o arquivo"
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr "Impressora de etiquetas padrão"
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr "Configurar qual impressora de etiqueta deve ser selecionada por padrão"
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr "Mostrar relatório em linha"
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Mostrar relatórios em PDF no navegador, ao invés de baixar o arquivo"
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr "Procurar Peças"
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr "Mostrar peças na janela de visualização de pesquisa"
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr "Buscar Peças do Fornecedor"
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr "Mostrar fornecedor de peças na janela de visualização de pesquisa"
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr "Buscar peças do fabricante"
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr "Mostrar fabricante de peças na janela de visualização de pesquisa"
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr "Ocultar peças inativas"
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr "Não incluir peças inativas na janela de visualização de pesquisa"
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr "Pesquisar Categorias"
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr "Mostrar categoria das peças na janela de visualização de pesquisa"
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr "Pesquisar Estoque"
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr "Mostrar itens do estoque na janela de visualização de pesquisa"
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr "Ocultar itens do estoque indisponíveis"
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Não incluir itens de estoque que não estão disponíveis na janela de visualização de pesquisa"
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr "Procurar Locais"
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr "Mostrar locais de estoque na janela de visualização de pesquisa"
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr "Pesquisar empresas"
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr "Mostrar empresas na janela de visualização de pesquisa"
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr "Procurar Pedidos de Produção"
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr "Mostrar pedidos de produção na janela de visualização de pesquisa"
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr "Mostrar Pedido de Compras"
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr "Mostrar pedidos de compra na janela de visualização de pesquisa"
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr "Não incluir Pedidos de Compras Inativos"
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Não incluir pedidos de compras inativos na janela de visualização de pesquisa"
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr "Procurar Pedidos de Vendas"
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr "Mostrar pedidos de vendas na janela de visualização de pesquisa"
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr "Não Incluir Pedidos de Compras Inativas"
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr "Não incluir pedidos de vendas inativos na janela de visualização de pesquisa"
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr "Procurar Pedidos de Devolução"
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr "Mostrar pedidos de devolução na janela de visualização de pesquisa"
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr "Não Incluir Pedidos de Devolução Inativas"
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr "Não incluir pedidos de devolução inativos na janela de visualização de pesquisa"
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr "Mostrar Resultados Anteriores"
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr "Número de resultados mostrados em cada seção da janela de visualização de pesquisa"
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr "Pesquisa de Regex"
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr "Permitir expressôes comuns nas conultas de pesquisas"
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr "Busca de Palavras Inteira"
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr "Pesquisa retorna que palavra inteira coincide"
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "Mostrar Quantidade nos Formulários"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr "Mostrar a quantidade de peças disponíveis em alguns formulários"
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr "Tecla Esc Fecha Formulários"
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr "Usar a tecla Esc para fechar fomulários modais"
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr "Fixar Navbar"
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr "A posição do Navbar é fixa no topo da tela"
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr "Formato da data"
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr "Formato preferido para mostrar datas"
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Agendamento de peças"
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr "Mostrar informações de agendamento de peças"
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Balanço de Peça"
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "Mostrar informação de balanço da peça (se a funcionalidade de balanço estiver habilitada)"
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr "Comprimento da Tabela de Frases"
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr "Limite máximo de comprimento para frases exibidas nas visualizações de tabela"
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr "Modelo de rótulo padrão da peça"
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr "O modelo de rótulo da peça a ser selecionado automaticamente"
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr "Modelo padrão de item de estoque"
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr "O modelo de rótulo do item a ser selecionado automaticamente"
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr "Modelo de rótulo de localização do estoque padrão"
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr "O modelo de rótulo do local de estoque a ser selecionado automaticamente"
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr "Receber relatório de erros"
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr "Receber notificações para erros do sistema"
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr "Quantidade de Parcelamentos"
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Preço"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr "Preço unitário na quantidade especificada"
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr "Ponto final"
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr "Ponto final em qual o gancho web foi recebido"
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr "Nome para este webhook"
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr "Nome para este webhook"
msgid "Active"
msgstr "Ativo"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr "Este gancho web está ativo"
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr "Token"
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr "Token de acesso"
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr "Segredo"
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr "Segredo compartilhado para HMAC"
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr "ID da Mensagem"
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr "Identificador exclusivo desta mensagem"
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr "Servidor"
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr "Servidor do qual esta mensagem foi recebida"
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr "Cabeçalho"
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr "Cabeçalho da mensagem"
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr "Corpo"
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr "Corpo da mensagem"
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr "Ponto do qual esta mensagem foi recebida"
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr "Trabalhado em"
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr "O trabalho desta mensagem foi concluído?"
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr "Id"
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Título"
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr "Publicado"
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "Autor"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Resumo"
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr "Lida"
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr "Esta notícia do item foi lida?"
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr "Esta notícia do item foi lida?"
msgid "Image"
msgstr "Imagem"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr "Arquivo de imagem"
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr "Nome da unidade deve ser um identificador válido"
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr "Nome da unidade"
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Símbolo"
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr "Símbolo de unidade opcional"
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definição"
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr "Definição de unidade"
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Novo {verbose_name}"
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr "Um novo pedido foi criado e atribuído a você"
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr "Itens Recebidos"
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr "Os itens de um pedido de compra foram recebidos"
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr "Os itens de um pedido de devolução foram recebidos"
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr "Erro criado pela extensão"
@@ -3572,7 +3571,7 @@ msgstr "Os campos não correspondem"
msgid "Parts imported"
msgstr "Peças importadas"
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Endereço de e-mail do contato"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "Esta empresa fabrica peças?"
msgid "Default currency used for this company"
msgstr "Moeda padrão utilizada para esta empresa"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Empresa"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr "Selecione a Empresa"
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr "Título do endereço"
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr "Título descrevendo a entrada de endereço"
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr "Endereço Principal"
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr "Definir como endereço principal"
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr "Linha 1"
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr "Linha de endereço 1"
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr "Linha 2"
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr "Linha de endereço 2"
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr "Código Postal"
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr "Cidade/Região"
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr "Código Postal Cidade / Região"
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr "Estado/Provincia"
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr "Estado ou Província"
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr "País"
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr "País do endereço"
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr "Notas de envio da transportadora"
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr "Notas para o envio da transportadora"
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr "Notas de envio interno"
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr "Notas de envio para uso interno"
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr "Link para as informações do endereço (externo)"
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Peça base"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Selecionar peça"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr "Selecionar peça"
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Selecionar fabricante"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Selecionar fabricante"
msgid "MPN"
msgstr "NPF"
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Número de Peça do Fabricante"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr "URL do link externo da peça do fabricante"
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr "Descrição da peça do fabricante"
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Peça do Fabricante"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Nome do parâmetro"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Valor"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Valor do Parâmetro"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Unidades"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Unidades do parâmetro"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr "Unidades de pacote devem ser compatíveis com as unidades de peça base"
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr "Unidades de pacote deve ser maior do que zero"
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr "Parte do fabricante vinculado deve fazer referência à mesma peça base"
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr "Parte do fabricante vinculado deve fazer referência à mesma peça base
msgid "Supplier"
msgstr "Fornecedor"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Selecione o fornecedor"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Selecione o fornecedor"
msgid "SKU"
msgstr "Código (SKU)"
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr "Unidade de reserva de estoque fornecedor"
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "Selecionar peça do fabricante"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr "URL do link externo da peça do fabricante"
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr "Descrição da peça fornecedor"
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Anotação"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "preço base"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Taxa mínima (ex.: taxa de estoque)"
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr "Embalagem"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr "Embalagem de peças"
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr "Embalagem de peças"
msgid "Pack Quantity"
msgstr "Quantidade de embalagens"
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Quantidade total fornecida em um único pacote. Deixe em branco para itens únicos."
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr "múltiplo"
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr "Pedir múltiplos"
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr "Quantidade disponível do fornecedor"
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr "Disponibilidade Atualizada"
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr "Data da última atualização da disponibilidade dos dados"
@@ -4014,10 +4011,10 @@ msgstr "Baixar imagem do URL"
msgid "Delete image"
msgstr "Excluir imagem"
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Cliente"
msgid "Uses default currency"
msgstr "Usar moeda padrão"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr "Endereços da empresa"
msgid "Add Address"
msgstr "Adicionar endereço"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Fabricantes"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr "Nenhuma informação do fabricante disponível"
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr "Endereços"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr "Vincular Código de Barras à Parte do Fornecedor"
msgid "Update Part Availability"
msgstr "Atualizar disponibilidade de peças"
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr "Itens de Estoque"
msgid "Supplier Part Pricing"
msgstr "Preço do Fornecedor Peça"
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Novo Fornecedor"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Novo Fabricante"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Clientes"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Novo Cliente"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Empresas"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Nova Empresa"
@@ -4425,7 +4422,7 @@ msgstr "Etiqueta"
msgid "Label template file"
msgstr "Arquivo de modelo de etiqueta"
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Habilitado"
@@ -4449,7 +4446,7 @@ msgstr "Altura [mm]"
msgid "Label height, specified in mm"
msgstr "Altura da Etiqueta, em mm"
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr "Padrão de Nome de Arquivo"
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr "Filtros de consulta (lista de valores separados por vírgula)"
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Filtros"
@@ -4481,7 +4478,7 @@ msgstr "Código QR"
msgid "QR code"
msgstr "Código QR"
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr "Código QR"
msgid "Total Price"
msgstr "Preço Total"
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr "Nenhum pedido de compra correspondente encontrado"
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr "Nenhum pedido de compra correspondente encontrado"
msgid "Purchase Order"
msgstr "Pedido de Compra"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr "Pedido de Compra"
msgid "Return Order"
msgstr "Devolver pedido"
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr "Desconhecido"
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr "Preço total deste pedido"
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr "Moeda do pedido"
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr "Moeda para este pedido (deixe em branco para usar o padrão da empresa)"
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr "O contato não corresponde à empresa selecionada"
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr "Descrição do pedido (opcional)"
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr "Selecione o código do projeto para este pedido"
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr "Link para página externa"
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Data esperada para entrega do pedido. O Pedido estará atrasado após esta data."
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr "Criado por"
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "Usuário ou grupo responsável para este pedido"
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr "Ponto de contato para este pedido"
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr "Endereço da empresa para este pedido"
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Referência do pedido"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr "Situação do pedido de compra"
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr "Empresa da qual os itens estão sendo encomendados"
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr "Referencia do fornecedor"
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr "Código de referência do pedido fornecedor"
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr "recebido por"
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr "Data de emissão"
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr "Dia que o pedido foi feito"
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr "Dia que o pedido foi concluído"
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr "Fornecedor de peça deve corresponder a fornecedor da OC"
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr "Quantidade deve ser um número positivo"
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr "Empresa para qual os itens foi vendidos"
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr "Referência do Cliente "
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr "Código de Referência do pedido do cliente"
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr "Data de Envio"
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr "enviado por"
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr "O pedido não pode ser concluído, pois nenhuma parte foi atribuída"
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr "Apenas um pedido aberto pode ser marcado como completo"
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Pedido não pode ser concluído, pois, há envios incompletos"
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Pedido não pode ser concluído, pois, há itens na linha incompletos"
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr "Quantidade do item"
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr "Referência do Item em Linha"
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr "Observações do Item de Linha"
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Data alvo para este item de linha (deixe em branco para usar a data alvo do pedido)"
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr "Descrição item de linha (opcional)"
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr "Contexto"
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr "Contexto adicional para esta linha"
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr "Preço Unitário"
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr "A peça do fornecedor deve corresponder ao fornecedor"
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr "excluído"
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr "Pedido"
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr "Fornecedor da Peça"
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr "Fornecedor da Peça"
msgid "Received"
msgstr "Recebido"
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr "Número de itens recebidos"
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Preço de Compra"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr "Preço unitário de compra"
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Onde o Comprador quer que este item seja armazenado?"
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr "Peça virtual não pode ser atribuída a um pedido de venda"
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr "Apenas peças vendáveis podem ser atribuídas a um pedido de venda"
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "Preço de Venda"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr "Preço de venda unitário"
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr "Quantidade enviada"
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr "Data do envio"
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr "Data de Entrega"
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr "Data da entrega do envio"
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr "Verificado por"
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr "Usuário que verificou esta remessa"
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr "Remessa"
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr "Número do Envio"
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr "Número de Rastreamento"
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr "Informação de rastreamento da remessa"
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr "Número da Fatura"
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr "Número de referência para fatura associada"
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr "O pedido já foi enviado"
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr "Remessa não foi alocada nos itens de estoque"
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr "O item do estoque não foi atribuído"
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Não é possível alocar o item de estoque para uma linha de uma peça diferente"
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr "Não é possível alocar uma linha sem uma peça"
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "A quantidade de alocação não pode exceder a quantidade em estoque"
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr "Quantidade deve ser 1 para item de estoque serializado"
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr "Pedidos de venda não coincidem com a remessa"
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr "Remessa não coincide com pedido de venda"
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr "Linha"
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr "Referência de remessa do pedido de venda"
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr "Item"
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr "Selecione o item de estoque para alocar"
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr "Insira a quantidade de atribuição de estoque"
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr "Referência de Pedidos de Devolução"
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr "Empresa da qual os itens estão sendo retornados"
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr "Estado do pedido de retorno"
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr "Somente itens da série podem ser devolvidos"
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr "Selecione o item a ser devolvido pelo cliente"
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr "Data de Recebimento"
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr "Data que o pedido a ser devolvido foi recebido"
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr "Despesa/gastos"
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr "Gastos com esta linha de itens"
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr "Gastos para reparar e/ou devolver esta linha de itens"
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr "Pedido não pode ser cancelado"
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr "Permitir que o pedido seja fechado com itens de linha incompletos"
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr "O pedido tem itens da linha incompletos"
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr "O pedido não está aberto"
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr "Moeda de preço de compra"
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr "A peça do fornecedor deve ser especificada"
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr "O pedido de compra deve ser especificado"
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr "O fornecedor deve corresponder o pedido de compra"
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr "Pedido de compra deve corresponder ao fornecedor"
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr "Itens de linha"
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr "O item de linha não corresponde ao pedido de compra"
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr "Selecione o local de destino para os itens recebidos"
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr "Digite o código do lote para itens de estoque recebidos"
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr "Digite o número de série para itens de estoque recebidos"
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "Código de barras"
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr "Código de barras lido"
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr "Código de barras já em uso"
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr "Quantidade inteira deve ser fornecida para peças rastreáveis"
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr "Itens de linha deve ser providenciados"
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr "Loca de destino deve ser especificado"
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr "Código de barras fornecido deve ser único"
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr "Moeda de preço de venda"
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr "Nenhum detalhe da remessa fornecido"
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr "Item de linha não está associado a este pedido"
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr "Quantidade deve ser positiva"
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr "Digite números de série para alocar"
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr "O pedido já foi enviado"
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr "O envio não está associado a este pedido"
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr "Nenhuma correspondência encontrada para os seguintes números de série"
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr "Os seguintes números de série já estão alocados"
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr "Devolver item do pedido"
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr "Item do pedido não bate com o pedido de devolução"
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr "Item do pedido já foi recebido"
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr "Itens só podem ser recebidos de pedidos em processamento"
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr "Tipo de moeda para o item do pedido"
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr "Pedido de compra vencido"
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "Pedido de compra {po} está atrasada"
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr "Pedido de venda vencido"
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "Pedido de venda {so} está atrasada"
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr "Envios Pendentes"
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Ações"
@@ -5434,47 +5431,47 @@ msgstr "Atualizado {part} unid.-preço para {price}"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "Atualizado {part} unid.-preço para {price} e quantidade para {qty}"
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr "ID da Peça"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr "Nome da Peça"
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr "Descrição da Peça"
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr "IPN"
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr "Revisão"
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Palavras chave"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr "ID da Categoria"
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr "Nome da Categoria"
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr "ID Local Padrão"
@@ -5482,11 +5479,11 @@ msgstr "ID Local Padrão"
msgid "Default Supplier ID"
msgstr "ID de Fornecedor Padrão"
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr "Variante de"
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "Estoque Mínimo"
@@ -5496,8 +5493,8 @@ msgstr "Estoque Mínimo"
msgid "In Stock"
msgstr "Em Estoque"
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr "Usado em"
msgid "Building"
msgstr "Produzindo"
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr "Custo Mínimo"
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr "Custo Máximo"
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr "ID Paternal"
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr "Nome Paternal"
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr "Caminho da Categoria"
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr "Caminho da Categoria"
msgid "Parts"
msgstr "Peças"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr "Nível da LDM"
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr "ID Item LDM"
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr "IPN Paternal"
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr "IPN da Peça"
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Preço Mínimo"
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr "Preço Máximo"
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr "Pedido de compra recebido"
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr "Pedidos de Venda Feitos"
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr "Estoque produzido pelo Pedido de Produção"
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr "Estoque obrigatório para Pedido de Produção"
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr "Válido"
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr "Validar a Lista de Materiais completa"
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr "Esta opção deve ser selecionada"
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Local Padrão"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Estoque Total"
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "Estoque Disponível"
@@ -5616,7 +5613,7 @@ msgstr "Estoque Disponível"
msgid "Input quantity for price calculation"
msgstr "Quantidade para o cálculo de preço"
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria da Peça"
@@ -5662,62 +5659,62 @@ msgstr "Ícone (opcional)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr "Você não pode tornar esta categoria em estrutural, pois, algumas partes já estão alocadas!"
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr "Escolha inválida para peça parental"
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Parte '{p1}' é usada na LDM para '{p2}' (recursiva)"
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN deve corresponder ao padrão regex {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr "Item em estoque com este número de série já existe"
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr "Não é permitido duplicar IPN em configurações de partes"
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr "Uma parte com este Nome, IPN e Revisão já existe."
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Peças não podem ser atribuídas a categorias estruturais!"
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Nome da peça"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr "É um modelo"
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr "Esta peça é uma peça modelo?"
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr "Esta peça é variante de outra peça?"
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr "Descrição da peça (opcional)"
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr "Palavras-chave para melhorar a visibilidade nos resultados da pesquisa"
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr "Palavras-chave para melhorar a visibilidade nos resultados da pesquisa"
msgid "Category"
msgstr "Categoria"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "Categoria da Peça"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr "Numero interno do produto"
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr "Revisão de peça ou número de versão"
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr "Onde este item é armazenado normalmente?"
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr "Fornecedor Padrão"
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr "Fornecedor padrão da peça"
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr "Validade Padrão"
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr "Validade (em dias) para itens do estoque desta peça"
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr "Nível mínimo de estoque permitido"
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr "Unidade de medida para esta peça"
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr "Essa peça pode ser construída a partir de outras peças?"
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr "Essa peça pode ser usada para construir outras peças?"
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr "Esta parte tem rastreamento para itens únicos?"
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr "Esta peça pode ser comprada de fornecedores externos?"
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr "Esta peça pode ser vendida a clientes?"
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr "Esta parte está ativa?"
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Esta é uma peça virtual, como um software de produto ou licença?"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr "Soma de Verificação da LDM"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr "Soma de verificação da LDM armazenada"
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr "LDM conferida por"
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr "LDM verificada no dia"
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr "Criação de Usuário"
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr "Usuário responsável por esta peça"
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr "Último Balanço"
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr "Venda múltipla"
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr "Moeda usada para armazenar os cálculos de preços"
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr "Custo Mínimo da LDM"
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr "Custo mínimo das peças componentes"
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr "Custo Máximo da LDM"
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr "Custo máximo das peças componentes"
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr "Custo Mínimo de Compra"
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr "Custo mínimo histórico de compra"
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr "Custo Máximo de Compra"
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr "Custo máximo histórico de compra"
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr "Preço Interno Mínimo"
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr "Custo mínimo baseado nos intervalos de preço internos"
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr "Preço Interno Máximo"
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr "Custo máximo baseado nos intervalos de preço internos"
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr "Preço Mínimo do Fornecedor"
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr "Preço mínimo da peça de fornecedores externos"
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr "Preço Máximo do Fornecedor"
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr "Preço máximo da peça de fornecedores externos"
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr "Custo Mínimo variável"
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr "Custo mínimo calculado das peças variáveis"
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr "Custo Máximo Variável"
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr "Custo máximo calculado das peças variáveis"
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr "Custo total mínimo calculado"
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr "Custo total máximo calculado"
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr "Preço Mínimo de Venda"
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr "Preço mínimo de venda baseado nos intervalos de preço"
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr "Preço Máximo de Venda"
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr "Preço máximo de venda baseado nos intervalos de preço"
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr "Custo Mínimo de Venda"
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr "Preço histórico mínimo de venda"
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr "Custo Máximo de Venda"
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr "Preço histórico máximo de venda"
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr "Peça para Balanço"
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr "Total de Itens"
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr "Número de entradas de estoques individuais no momento do balanço"
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr "Estoque total disponível no momento do balanço"
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr "Estoque total disponível no momento do balanço"
msgid "Date"
msgstr "Data"
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr "Data de realização do balanço"
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr "Notas adicionais"
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr "Usuário que fez o balanço"
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr "Custo Mínimo de Estoque"
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr "Custo mínimo estimado de estoque disponível"
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr "Custo Máximo de Estoque"
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr "Custo máximo estimado de estoque disponível"
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr "Reportar"
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr "Arquivo de Relatório de Balanço (gerado internamente)"
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr "Contagem de Peças"
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr "Número de peças cobertas pelo Balanço"
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr "Usuário que solicitou este relatório de balanço"
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr "Modelos de teste só podem ser criados para peças rastreáveis"
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr "O teste com este nome já existe para esta peça"
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr "Nome de Teste"
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr "Insira um nome para o teste"
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr "Descrição do Teste"
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr "Digite a descrição para este teste"
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Requerido"
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr "Este teste é obrigatório passar?"
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr "Requer Valor"
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr "Este teste requer um valor ao adicionar um resultado de teste?"
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr "Anexo obrigatório"
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Este teste requer um anexo ao adicionar um resultado de teste?"
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr "Parâmetros da caixa de seleção não podem ter unidades"
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr "Os parâmetros da caixa de seleção não podem ter escolhas"
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr "Escolhas devem ser únicas"
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr "Nome do modelo de parâmetro deve ser único"
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr "Nome do Parâmetro"
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr "Unidades físicas para este parâmetro"
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr "Descrição do Parâmetro"
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr "Caixa de seleção"
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr "Este parâmetro é uma caixa de seleção?"
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr "Escolhas"
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Opções válidas para este parâmetro (separadas por vírgulas)"
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr "Escolha inválida para valor do parâmetro"
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr "Peça Paternal"
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr "Modelo de parâmetro"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr "Dados"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr "Valor do Parâmetro"
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr "Valor Padrão"
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr "Valor Padrão do Parâmetro"
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr "ID da peça ou nome da peça"
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr "Valor exclusivo do ID de peça"
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr "Valor da parte IPN"
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr "Nível"
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr "Nível da LDM"
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "Item LDM"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr "Selecione a Peça Parental"
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr "Sub peça"
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr "Selecionar peça a ser usada na LDM"
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr "Quantidade de LDM para este item LDM"
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr "Este item LDM é opcional"
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Este item LDM é consumível (não é rastreado nos pedidos de construção)"
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Excedente"
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Quantidade estimada de desperdício (absoluto ou porcentagem)"
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr "Referência do Item LDM"
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr "Notas do Item LDM"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr "Soma de verificação"
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr "Soma de Verificação da LDM da linha"
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr "Validado"
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr "O item da LDM foi validado"
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr "Obtém herdados"
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Este item da LDM é herdado por LDMs para peças variáveis"
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Permitir variações"
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Itens de estoque para as peças das variantes podem ser usados para este item LDM"
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr "Quantidade deve ser valor inteiro para peças rastreáveis"
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr "Sub peça deve ser especificada"
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr "Substituir Item da LDM"
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr "A peça de substituição não pode ser a mesma que a peça mestre"
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr "Item LDM Parental"
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr "Substituir peça"
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr "Selecionar Peça Relacionada"
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr "Relacionamento da peça não pode ser criada com ela mesma"
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr "Relação duplicada já existe"
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr "Moeda de compra deste item de estoque"
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr "Nenhuma parte selecionada"
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr "Selecionar categoria"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr "Peça Original"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr "Selecione a peça original para duplicar"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr "Copiar imagem"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr "Copiar imagem da peça original"
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr "Copiar LDM"
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr "Copiar lista de materiais da peça original"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr "Copiar Parâmetros"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr "Copiar dados do parâmetro da peça original"
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr "Quantidade Inicial de Estoque"
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Especificar a quantidade inicial de estoque para a peça. Se for zero, nenhum estoque é adicionado."
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr "Local Inicial do Estoque"
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr "Especifique o local do estoque inicial para esta Peça"
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr "Selecione o fornecedor (ou deixe em branco para pular)"
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Selecione fabricante (ou deixe em branco para pular)"
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr "Número de Peça do Fabricante"
@@ -6378,190 +6375,190 @@ msgstr "Número de Peça do Fabricante"
msgid "Selected company is not a valid supplier"
msgstr "A empresa selecionada não é um fornecedor válido"
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr "A empresa selecionada não é um fabricante válido"
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr "A peça do fabricante que corresponde a essa MPN já existe"
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr "A peça do fornecedor que corresponde a essa SKU já existe"
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr "Peça duplicada"
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr "Copiar dados iniciais de outra peça"
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr "Estoque inicial"
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr "Criar peça com a quantidade inicial de estoque"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr "Informações do Fornecedor"
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr "Adicionar informação inicial de fornecedor para esta peça"
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr "Copiar Parâmetros da Categoria"
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr "Copiar modelos de parâmetros a partir de categoria de peça selecionada"
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr "Limitar o relatório de balanço a uma determinada peça e quaisquer peças variantes"
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr "Limitar o relatório de balanço a uma determinada categoria, e qualquer peças filhas"
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr "Limitar o relatório de balanço a um determinado local de estoque, e qualquer local filho"
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr "Excluir Estoque externo"
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr "Excluir itens de estoque em locais externos"
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr "Gerar relatório"
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr "Gerar arquivo de relatório contendo dados de estoque calculados"
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr "Atualizar Peças"
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr "Atualizar peças especificadas com dados de estoque calculados"
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr "Função de Balanço de Estoque não está ativada"
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr "Atualizar"
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr "Atualizar preços desta peça"
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr "Selecionar peça para copiar a LDM"
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr "Remover Dado Existente"
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr "Remova itens LDM existentes antes de copiar"
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr "Incluir Herdados"
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr "Incluir itens LDM que são herdados de peças modelo"
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr "Pular Linhas inválidas"
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr "Habilitar esta opção para pular linhas inválidas"
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr "Copiar Peças Substitutas"
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copiar peças de substitutas quando duplicar itens de LDM"
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr "Limpar LDM Existente"
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr "Apagar itens LDM existentes antes de carregar"
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr "Nenhuma coluna de peça especificada"
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr "Múltiplas peças correspondentes encontradas"
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr "Nenhuma peça correspondente encontrada"
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr "Peça não está designada como componente"
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr "Quantidade não foi fornecida"
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr "Quantidade Inválida"
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr "Pelo menos um item LDM é necessário"
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr "Quantidade Total"
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr "Custo Min Total"
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr "Custo Max Total"
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr "Balanço de Estoque Disponível"
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr "Um novo relatório de balanço do estoque está disponível para baixar"
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr "Validar LDM"
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr "Adicionar Item LDM"
@@ -6961,7 +6958,7 @@ msgstr "Alocado para Pedidos de Construção"
msgid "Allocated to Sales Orders"
msgstr "Alocado para Pedidos de Venda"
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr "Pode Produzir"
@@ -7219,11 +7216,11 @@ msgstr "Criar variante de peça"
msgid "Create a new variant part from this template"
msgstr "Criar uma peça variante a partir deste modelo"
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr "Banco de dados desconhecido"
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
@@ -7261,20 +7258,19 @@ msgstr "Nenhuma ação especificada"
msgid "No matching action found"
msgstr "Nenhuma ação correspondente encontrada"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr "Faltando dados do código de barras"
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Nenhum resultado encontrado para os dados do código de barras"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Coincidência encontrada para dados de código de barras"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr "Código de barras corresponde ao item existente"
@@ -7283,52 +7279,6 @@ msgstr "Código de barras corresponde ao item existente"
msgid "No match found for provided value"
msgstr "Nenhuma correspondência encontrada para o valor fornecido"
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr "Impressão de etiqueta falhou"
@@ -7345,8 +7295,6 @@ msgstr "Fornece suporte nativo para códigos de barras"
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr "Contribuidores do InvenTree"
@@ -7384,7 +7332,7 @@ msgstr "Link do gancho de entrada do Slack"
msgid "URL that is used to send messages to a slack channel"
msgstr "URL usada para enviar mensagens para um canal do Slack"
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr "Abrir link"
@@ -7412,68 +7360,20 @@ msgstr "Modo de depuração"
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr "Ativar o modo de depuração - retorna HTML bruto em vez de PDF"
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr "Nome da Extensão"
msgid "Is the plugin active"
msgstr "O plug-in está ativo"
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr "Instalado"
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr "Plug-in de exemplo"
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr "Plugin embutido"
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr "Extensões"
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr "Método"
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr "Nenhum autor encontrado"
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "A extensão '{p}' não é compatível com a versão atual do InvenTree {v}"
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Extensão requer pelo menos a versão {v}"
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Extensão requer no máximo a versão {v}"
@@ -7614,33 +7514,29 @@ msgstr "Instalação não confirmada"
msgid "Either packagename of URL must be provided"
msgstr "Qualquer nome do pacote URL deve ser fornecido"
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr "Ativar Extensão"
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr "Ativar esta extensão"
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr "Nenhum objeto válido fornecido para o modelo"
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Arquivo modelo '{template}' perdido ou não existe"
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr "Relatório de teste"
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr "Nome do modelo"
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr "Arquivo modelo de relatório"
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr "Descrição do modelo de relatório"
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr "Relatar número de revisão (auto-incrementos)"
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr "Padrão para gerar nomes de arquivo de relatórios"
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr "Modelo de relatório Habilitado"
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr "Filtros de consulta de itens de estoque(lista de valores separados por vírgula)"
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr "Incluir testes instalados"
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr "Incluir resultados de testes para itens de estoque instalados dentro de item montado"
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr "Filtros de Produção"
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr "Filtros de consulta de produção (lista de valores separados por vírgula"
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr "Filtros de Peças"
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr "Filtros de consulta de peças (lista de valores separados por vírgula"
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr "Filtros de consultas de pedidos de compra"
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr "Filtros de consultas de pedidos de venda"
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr "Filtrar pesquisa de itens devolvidos"
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr "Recorte"
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr "Relatar arquivo de recorte"
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr "Descrição do arquivo de recorte"
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr "Patrimônio"
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr "Reportar arquivo de ativos"
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr "Descrição do arquivo de ativos"
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr "filtros de consulta de locais de estoque(lista de valores separados por vírgula)"
@@ -7792,7 +7688,7 @@ msgstr "Total"
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr "Resultados do teste"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Teste"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr "Resultado"
@@ -7891,7 +7787,7 @@ msgstr "Nome do Fornecedor"
msgid "Customer ID"
msgstr "ID Cliente"
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr "Instalado em"
@@ -7916,33 +7812,33 @@ msgstr "Revisão Necessária"
msgid "Delete on Deplete"
msgstr "Excluir quando esgotado"
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr "Data de validade"
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr "Localização externa"
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr "Quantidade obrigatória"
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr "Uma peça válida deve ser fornecida"
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr "A peça do fornecedor informado não existe"
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "A peça do fornecedor tem um tamanho de pacote definido, mas o item use_pack_size não foi definida"
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Números de série não podem ser fornecidos para uma parte não rastreável"
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr "Localização do estoque"
msgid "Stock Locations"
msgstr "Locais de estoque"
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr "Responsavel"
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr "Selecionar Responsável"
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr "Você não pode tornar este local do estoque estrutural, pois alguns itens de estoque já estão localizados nele!"
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr "Os itens de estoque não podem estar localizados em locais de estoque estrutural!"
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr "Item de estoque não pode ser criado para peças virtuais"
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Tipo da peça ('{pf}') deve ser {pe}"
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr "A quantidade deve ser 1 para um item com número de série"
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Número de série não pode ser definido se quantidade maior que 1"
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr "O item não pode pertencer a si mesmo"
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr "Item deve ter uma referência de produção se is_building=True"
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr "Referência de produção não aponta ao mesmo objeto da peça"
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr "Item de Estoque Parental"
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr "Peça base"
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr "Selecione uma peça do fornecedor correspondente para este item de estoque"
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr "Onde está localizado este item de estoque?"
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr "Embalagem deste item de estoque está armazenado em"
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr "Este item está instalado em outro item?"
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr "Número de série para este item"
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr "Código do lote para este item de estoque"
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr "Quantidade de Estoque"
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr "Produção de Origem"
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr "Produção para este item de estoque"
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr "Consumido por"
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr "Pedido de produção que consumiu este item de estoque"
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr "Pedido de compra Fonte"
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr "Pedido de Compra para este item de estoque"
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr "Destino do Pedido de Venda"
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Data de validade para o item de estoque. Estoque será considerado expirado após este dia"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr "Excluir quando esgotado"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr "Excluir este item de estoque quando o estoque for esgotado"
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr "Preço de compra unitário único no momento da compra"
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr "Convertido para peça"
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr "Peça não está definida como rastreável"
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr "Quantidade deve ser inteira"
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Quantidade não deve exceder a quantidade disponível em estoque ({n})"
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr "Números de série devem ser uma lista de números inteiros"
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr "A quantidade não corresponde aos números de série"
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "Números de série já existem"
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr "Item em estoque foi reservado para um pedido"
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr "Item em estoque está instalado em outro item"
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr "item em estoque contem outro(s) items"
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr "Item em estoque foi reservado para outro cliente"
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr "Item no estoque está em produção no momento"
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr "Itens de série não podem ser mesclados"
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr "Item de estoque duplicado"
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr "Itens de estoque devem se referir à mesma peça"
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr "Itens de estoque devem se referir à mesma peça do fornecedor"
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr "Códigos de estado do estoque devem corresponder"
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Item do estoque não pode ser realocado se não houver estoque da mesma"
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr "Observações de entrada"
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr "Deve-se fornecer o valor desse teste"
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr "O anexo deve ser enviado para este teste"
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr "Nome de teste"
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr "Resultado do teste"
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr "Valor da saída do teste"
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr "Anexo do resultado do teste"
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr "Notas do teste"
@@ -8231,141 +8127,141 @@ msgstr "Número de série é muito grande"
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Usar tamanho do pacote ao adicionar: a quantidade definida é o número de pacotes"
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr "Preço de compra para este item de estoque, por unidade ou pacote"
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr "Insira o número de itens de estoque para serializar"
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Quantidade não deve exceder a quantidade disponível em estoque ({q})"
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr "Inserir número de série para novos itens"
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr "Local de destino do estoque"
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr "Campo opcional de notas"
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr "Números de série não podem ser atribuídos a esta peça"
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr "Selecione o item de estoque para instalar"
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr "Adicionar nota de transação (opcional)"
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr "Item de estoque indisponível"
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr "Peça selecionada não está na Lista de Materiais"
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr "Local de destino para o item desinstalado"
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr "Selecione peça para converter o item de estoque em"
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr "Peça selecionada não é uma opção válida para conversão"
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr "Local de destino para item retornado"
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr "Selecionar itens de estoque para mudar estados"
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr "Nenhum item de estoque selecionado"
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr "Parte deve ser comercializável"
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr "Item é alocado para um pedido de venda"
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr "Item está alocado a um pedido de produção"
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr "Cliente para atribuir itens de estoque"
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr "A empresa selecionada não é um cliente"
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr "Nodas atribuídas a estoque"
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr "Uma lista de item de estoque deve ser providenciada"
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr "Notas de fusão de estoque"
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr "Permitir fornecedores divergentes"
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Permitir a fusão de itens de estoque de fornecedores diferentes"
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr "Permitir estado incompatível"
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr "Permitir a fusão de itens de estoque com estado diferentes"
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr "Ao menos dois itens de estoque devem ser providenciados"
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr "Valor da chave primária do Item Estoque"
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr "Código de estado do item estoque"
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr "Notas da transação de estoque"
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr "As peças a seguir estão abaixo do estoque requerido"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr "Quantidade Requerida"
@@ -10282,74 +10178,74 @@ msgstr "Estoque de variantes permitido"
msgid "Substitutes"
msgstr "Substitutos"
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr "Preços da LDM estão completos"
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr "Preços da LDM estão incompletos"
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr "Nenhum preço disponível"
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr "Nenhum Estoque Disponível"
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr "Incluir variante e substituição de estoque"
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr "Incluir variantes de estoque"
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr "Incluir estoque substituto"
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr "Item Consumível"
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr "Validar Item LDM"
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr "Esta linha foi validada"
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr "Editar peças substitutas"
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr "Editar Item LDM"
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr "Apagar Item LDM"
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr "Ver LDM"
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr "Nenhum item LDM encontrado"
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr "Peça Requerida"
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr "Herdado da LDM paternal"
diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
index 83d44b6e02..c78861e723 100644
--- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-18 03:46+0000\n"
+"POT-Creation-Date: 2023-09-29 21:02+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,69 +18,71 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:93
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
-#, python-brace-format
-msgid "Could not convert {original} to {unit}"
+#: InvenTree/conversion.py:115
+msgid "Provided value is not a valid number"
+msgstr ""
+
+#: InvenTree/conversion.py:117
+msgid "Provided value has an invalid unit"
+msgstr ""
+
+#: InvenTree/conversion.py:122
+msgid "Provided value could not be converted to the specified unit"
msgstr ""
#: InvenTree/conversion.py:127
-msgid "Invalid quantity supplied"
+msgid "Error"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:121 stock/models.py:2191 stock/models.py:2299
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:999 stock/serializers.py:1098
+#: stock/serializers.py:1259 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
-#: templates/js/translated/part.js:1077
-#: templates/js/translated/purchase_order.js:2179
-#: templates/js/translated/return_order.js:773
+#: templates/js/translated/part.js:1061
+#: templates/js/translated/purchase_order.js:2175
+#: templates/js/translated/return_order.js:769
#: templates/js/translated/sales_order.js:1064
#: templates/js/translated/sales_order.js:1979
-#: templates/js/translated/stock.js:1516 templates/js/translated/stock.js:2398
+#: templates/js/translated/stock.js:1478 templates/js/translated/stock.js:2360
msgid "Notes"
msgstr ""
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -104,99 +106,99 @@ msgstr ""
msgid "Old password"
msgstr ""
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr ""
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -212,252 +214,248 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2293
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2770 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: stock/admin.py:138 templates/js/translated/company.js:1309
+#: stock/admin.py:120 templates/js/translated/company.js:1309
#: templates/js/translated/company.js:1663 templates/js/translated/order.js:351
-#: templates/js/translated/part.js:2451
-#: templates/js/translated/purchase_order.js:2019
-#: templates/js/translated/purchase_order.js:2183
-#: templates/js/translated/return_order.js:777
+#: templates/js/translated/part.js:2430
+#: templates/js/translated/purchase_order.js:2015
+#: templates/js/translated/purchase_order.js:2179
+#: templates/js/translated/return_order.js:773
#: templates/js/translated/sales_order.js:1053
#: templates/js/translated/sales_order.js:1984
msgid "Link"
msgstr ""
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:735
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2229
+#: common/models.py:2230 common/models.py:2443 common/models.py:2444
+#: common/models.py:2700 common/models.py:2701 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:224 plugin/models.py:225
#: report/templates/report/inventree_test_report_base.html:105
-#: templates/js/translated/stock.js:3007
+#: templates/js/translated/stock.js:2958
msgid "User"
msgstr ""
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
-#: templates/InvenTree/settings/mixins/urls.html:13
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2429
+#: common/models.py:2877 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:164 templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
#: templates/InvenTree/settings/plugin_settings.html:22
#: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
#: templates/js/translated/company.js:666
#: templates/js/translated/company.js:714
#: templates/js/translated/company.js:903
#: templates/js/translated/company.js:1155
-#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1183
-#: templates/js/translated/part.js:1471 templates/js/translated/part.js:1607
-#: templates/js/translated/part.js:2744 templates/js/translated/stock.js:2687
+#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1167
+#: templates/js/translated/part.js:1455 templates/js/translated/part.js:1591
+#: templates/js/translated/part.js:2723 templates/js/translated/stock.js:2649
msgid "Name"
msgstr ""
-#: InvenTree/models.py:656 build/models.py:168
+#: InvenTree/models.py:672 build/models.py:168
#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:177
+#: report/models.py:580 report/models.py:624
#: report/templates/report/inventree_build_order_base.html:117
-#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
+#: stock/admin.py:41 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:27
#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
#: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
-#: templates/js/translated/build.js:2121 templates/js/translated/company.js:518
+#: templates/js/translated/build.js:2109 templates/js/translated/company.js:518
#: templates/js/translated/company.js:1320
#: templates/js/translated/company.js:1631 templates/js/translated/index.js:119
-#: templates/js/translated/order.js:298 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1618
-#: templates/js/translated/part.js:1953 templates/js/translated/part.js:2350
-#: templates/js/translated/part.js:2780 templates/js/translated/part.js:2868
-#: templates/js/translated/plugin.js:79
-#: templates/js/translated/purchase_order.js:1685
-#: templates/js/translated/purchase_order.js:1828
-#: templates/js/translated/purchase_order.js:2001
+#: templates/js/translated/order.js:298 templates/js/translated/part.js:1219
+#: templates/js/translated/part.js:1464 templates/js/translated/part.js:1602
+#: templates/js/translated/part.js:1937 templates/js/translated/part.js:2329
+#: templates/js/translated/part.js:2759 templates/js/translated/part.js:2847
+#: templates/js/translated/purchase_order.js:1681
+#: templates/js/translated/purchase_order.js:1824
+#: templates/js/translated/purchase_order.js:1997
#: templates/js/translated/return_order.js:311
#: templates/js/translated/sales_order.js:799
#: templates/js/translated/sales_order.js:1809
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:2028
-#: templates/js/translated/stock.js:2719 templates/js/translated/stock.js:2802
+#: templates/js/translated/stock.js:1457 templates/js/translated/stock.js:1990
+#: templates/js/translated/stock.js:2681 templates/js/translated/stock.js:2753
msgid "Description"
msgstr ""
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr ""
-#: InvenTree/models.py:672 InvenTree/models.py:673
-#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
+#: InvenTree/models.py:688 InvenTree/models.py:689
+#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2690
msgid "Path"
msgstr ""
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
@@ -511,136 +509,136 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:713
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:714
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:728
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:814
+#: InvenTree/settings.py:756
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:815
+#: InvenTree/settings.py:757
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:816
+#: InvenTree/settings.py:758
msgid "German"
msgstr ""
-#: InvenTree/settings.py:817
+#: InvenTree/settings.py:759
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:818
+#: InvenTree/settings.py:760
msgid "English"
msgstr ""
-#: InvenTree/settings.py:819
+#: InvenTree/settings.py:761
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:820
+#: InvenTree/settings.py:762
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:821
+#: InvenTree/settings.py:763
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:822
+#: InvenTree/settings.py:764
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:823
+#: InvenTree/settings.py:765
msgid "French"
msgstr ""
-#: InvenTree/settings.py:824
+#: InvenTree/settings.py:766
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:825
+#: InvenTree/settings.py:767
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:826
+#: InvenTree/settings.py:768
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:827
+#: InvenTree/settings.py:769
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:828
+#: InvenTree/settings.py:770
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:829
+#: InvenTree/settings.py:771
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:772
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:773
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:774
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:775
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:776
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:777
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:778
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:779
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:780
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:781
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:782
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:783
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:784
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1000
msgid "Background worker check failed"
msgstr ""
@@ -655,7 +653,7 @@ msgstr ""
#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40
#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167
#: InvenTree/status_codes.py:188 generic/states/tests.py:16
-#: templates/js/translated/table_filters.js:594
+#: templates/js/translated/table_filters.js:558
msgid "Pending"
msgstr ""
@@ -689,7 +687,7 @@ msgstr ""
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -724,7 +722,7 @@ msgstr ""
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544
+#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:510
msgid "Stock item created"
msgstr ""
@@ -780,7 +778,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1826
+#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1788
msgid "Merged stock items"
msgstr ""
@@ -800,7 +798,7 @@ msgstr ""
msgid "Build order output rejected"
msgstr ""
-#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1732
+#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1694
msgid "Consumed by build order"
msgstr ""
@@ -816,7 +814,7 @@ msgstr ""
msgid "Returned against Return Order"
msgstr ""
-#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375
+#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:351
msgid "Sent to customer"
msgstr ""
@@ -848,93 +846,93 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr ""
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr ""
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
-#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
+#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2493
#: templates/js/translated/table_filters.js:190
-#: templates/js/translated/table_filters.js:579
+#: templates/js/translated/table_filters.js:543
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
-#: templates/js/translated/build.js:2514
+#: templates/js/translated/build.js:2502
#: templates/js/translated/table_filters.js:186
#: templates/js/translated/table_filters.js:215
-#: templates/js/translated/table_filters.js:583
+#: templates/js/translated/table_filters.js:547
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
-#: templates/js/translated/table_filters.js:575
+#: build/api.py:289 templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:539
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
-#: templates/js/translated/build.js:2605
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1717
+#: templates/js/translated/build.js:2593
#: templates/js/translated/sales_order.js:1926
-#: templates/js/translated/table_filters.js:567
+#: templates/js/translated/table_filters.js:531
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2534
#: templates/js/translated/index.js:123
-#: templates/js/translated/model_renderers.js:226
-#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
-#: templates/js/translated/part.js:696
-#: templates/js/translated/table_filters.js:340
-#: templates/js/translated/table_filters.js:571
+#: templates/js/translated/model_renderers.js:223
+#: templates/js/translated/part.js:673 templates/js/translated/part.js:675
+#: templates/js/translated/part.js:680
+#: templates/js/translated/table_filters.js:316
+#: templates/js/translated/table_filters.js:535
msgid "Available"
msgstr ""
@@ -943,7 +941,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:105
#: templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
-#: templates/js/translated/build.js:961 templates/js/translated/stock.js:2863
+#: templates/js/translated/build.js:953 templates/js/translated/stock.js:2814
msgid "Build Order"
msgstr ""
@@ -966,18 +964,18 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1737 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
#: report/templates/report/inventree_so_report_base.html:28
#: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973
-#: templates/js/translated/build.js:2497 templates/js/translated/order.js:291
+#: templates/js/translated/build.js:2485 templates/js/translated/order.js:291
#: templates/js/translated/pricing.js:386
-#: templates/js/translated/purchase_order.js:2044
-#: templates/js/translated/return_order.js:726
+#: templates/js/translated/purchase_order.js:2040
+#: templates/js/translated/return_order.js:722
#: templates/js/translated/sales_order.js:1815
msgid "Reference"
msgstr ""
@@ -996,13 +994,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:958 part/serializers.py:1373
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1013,7 +1011,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1021,28 +1019,28 @@ msgstr ""
#: templates/email/overdue_build_order.html:16
#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
-#: templates/js/translated/build.js:1293 templates/js/translated/build.js:1724
-#: templates/js/translated/build.js:2144 templates/js/translated/build.js:2317
+#: templates/js/translated/build.js:1285 templates/js/translated/build.js:1716
+#: templates/js/translated/build.js:2132 templates/js/translated/build.js:2305
#: templates/js/translated/company.js:348
#: templates/js/translated/company.js:1106
#: templates/js/translated/company.js:1261
#: templates/js/translated/company.js:1549 templates/js/translated/index.js:109
-#: templates/js/translated/part.js:1938 templates/js/translated/part.js:2010
-#: templates/js/translated/part.js:2319 templates/js/translated/pricing.js:369
+#: templates/js/translated/part.js:1922 templates/js/translated/part.js:1994
+#: templates/js/translated/part.js:2298 templates/js/translated/pricing.js:369
#: templates/js/translated/purchase_order.js:757
#: templates/js/translated/purchase_order.js:1289
-#: templates/js/translated/purchase_order.js:1827
-#: templates/js/translated/purchase_order.js:1986
+#: templates/js/translated/purchase_order.js:1823
+#: templates/js/translated/purchase_order.js:1982
#: templates/js/translated/return_order.js:536
-#: templates/js/translated/return_order.js:707
+#: templates/js/translated/return_order.js:703
#: templates/js/translated/sales_order.js:297
#: templates/js/translated/sales_order.js:1194
#: templates/js/translated/sales_order.js:1595
#: templates/js/translated/sales_order.js:1793
-#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842
-#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1967
-#: templates/js/translated/stock.js:2828 templates/js/translated/stock.js:3061
-#: templates/js/translated/stock.js:3202
+#: templates/js/translated/stock.js:642 templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:1020 templates/js/translated/stock.js:1929
+#: templates/js/translated/stock.js:2779 templates/js/translated/stock.js:3012
+#: templates/js/translated/stock.js:3149
msgid "Part"
msgstr ""
@@ -1058,8 +1056,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
-#: templates/js/translated/build.js:1712
+#: build/models.py:207 build/serializers.py:946
+#: templates/js/translated/build.js:1704
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
msgstr ""
@@ -1100,17 +1098,17 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:739 stock/serializers.py:1223
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1125,8 +1123,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
-#: templates/js/translated/build.js:2229
+#: build/models.py:265 order/models.py:422 order/models.py:1780
+#: templates/js/translated/build.js:2217
msgid "Completion Date"
msgstr ""
@@ -1134,7 +1132,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:279 templates/js/translated/build.js:2189
+#: build/models.py:279 templates/js/translated/build.js:2177
msgid "Issued by"
msgstr ""
@@ -1143,16 +1141,16 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2201
-#: templates/js/translated/purchase_order.js:1742
+#: templates/js/translated/build.js:2189
+#: templates/js/translated/purchase_order.js:1738
#: templates/js/translated/return_order.js:356
-#: templates/js/translated/table_filters.js:527
+#: templates/js/translated/table_filters.js:491
msgid "Responsible"
msgstr ""
@@ -1166,7 +1164,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:733
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1181,9 +1179,9 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
-#: templates/js/translated/build.js:2126
-#: templates/js/translated/purchase_order.js:1689
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
+#: templates/js/translated/build.js:2114
+#: templates/js/translated/purchase_order.js:1685
#: templates/js/translated/return_order.js:315
#: templates/js/translated/sales_order.js:803
#: templates/js/translated/table_filters.js:48
@@ -1195,48 +1193,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1215 part/serializers.py:1536
+#: stock/models.py:593 stock/models.py:1387 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2251
+#: order/models.py:1086 order/models.py:1658 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1246,376 +1244,380 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:103 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:510
-#: templates/js/translated/build.js:726 templates/js/translated/build.js:1350
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2339
+#: templates/js/translated/build.js:722 templates/js/translated/build.js:1342
+#: templates/js/translated/build.js:1719 templates/js/translated/build.js:2327
#: templates/js/translated/company.js:1808
-#: templates/js/translated/model_renderers.js:228
-#: templates/js/translated/order.js:304 templates/js/translated/part.js:958
-#: templates/js/translated/part.js:1808 templates/js/translated/part.js:3305
+#: templates/js/translated/model_renderers.js:225
+#: templates/js/translated/order.js:304 templates/js/translated/part.js:942
+#: templates/js/translated/part.js:1792 templates/js/translated/part.js:3284
#: templates/js/translated/pricing.js:381
#: templates/js/translated/pricing.js:474
#: templates/js/translated/pricing.js:522
#: templates/js/translated/pricing.js:616
#: templates/js/translated/purchase_order.js:760
-#: templates/js/translated/purchase_order.js:1831
-#: templates/js/translated/purchase_order.js:2050
+#: templates/js/translated/purchase_order.js:1827
+#: templates/js/translated/purchase_order.js:2046
#: templates/js/translated/sales_order.js:314
#: templates/js/translated/sales_order.js:1196
#: templates/js/translated/sales_order.js:1515
#: templates/js/translated/sales_order.js:1605
#: templates/js/translated/sales_order.js:1695
#: templates/js/translated/sales_order.js:1821
-#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702
-#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:2992
-#: templates/js/translated/stock.js:3073
+#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:668
+#: templates/js/translated/stock.js:839 templates/js/translated/stock.js:2943
+#: templates/js/translated/stock.js:3024
msgid "Quantity"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1614
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1617
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:930
+#: stock/serializers.py:1056 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
-#: templates/js/translated/build.js:1726
+#: templates/js/translated/build.js:1718
#: templates/js/translated/sales_order.js:298
#: templates/js/translated/sales_order.js:1195
#: templates/js/translated/sales_order.js:1496
#: templates/js/translated/sales_order.js:1501
#: templates/js/translated/sales_order.js:1602
#: templates/js/translated/sales_order.js:1689
-#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843
-#: templates/js/translated/stock.js:2948
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:809
+#: templates/js/translated/stock.js:2899
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
-#: templates/js/translated/build.js:1303
+#: build/serializers.py:156 build/serializers.py:828
+#: templates/js/translated/build.js:1295
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
-#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
+#: templates/js/translated/stock.js:333 templates/js/translated/stock.js:531
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:736
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:970
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1091 stock/serializers.py:1362
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
-#: templates/js/translated/build.js:2354
+#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:980
+#: templates/js/translated/build.js:2342
#: templates/js/translated/purchase_order.js:1163
#: templates/js/translated/purchase_order.js:1253
#: templates/js/translated/sales_order.js:1508
#: templates/js/translated/sales_order.js:1616
#: templates/js/translated/sales_order.js:1624
#: templates/js/translated/sales_order.js:1703
-#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844
-#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2171
-#: templates/js/translated/stock.js:2842
+#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:810
+#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:2133
+#: templates/js/translated/stock.js:2793
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1763 order/serializers.py:530 stock/admin.py:106
+#: stock/serializers.py:703 stock/serializers.py:1230
#: stock/templates/stock/item_base.html:428
-#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
+#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2161
#: templates/js/translated/purchase_order.js:1293
-#: templates/js/translated/purchase_order.js:1701
+#: templates/js/translated/purchase_order.js:1697
#: templates/js/translated/return_order.js:328
#: templates/js/translated/sales_order.js:816
-#: templates/js/translated/stock.js:2146 templates/js/translated/stock.js:2966
-#: templates/js/translated/stock.js:3089
+#: templates/js/translated/stock.js:2108 templates/js/translated/stock.js:2917
+#: templates/js/translated/stock.js:3040
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:943
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1732,16 +1734,16 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2221 templates/js/translated/part.js:1826
-#: templates/js/translated/purchase_order.js:1718
-#: templates/js/translated/purchase_order.js:2126
+#: templates/js/translated/build.js:2209 templates/js/translated/part.js:1810
+#: templates/js/translated/purchase_order.js:1714
+#: templates/js/translated/purchase_order.js:2122
#: templates/js/translated/return_order.js:344
-#: templates/js/translated/return_order.js:748
+#: templates/js/translated/return_order.js:744
#: templates/js/translated/sales_order.js:832
#: templates/js/translated/sales_order.js:1864
msgid "Target Date"
@@ -1758,9 +1760,9 @@ msgstr ""
#: order/templates/order/return_order_base.html:118
#: order/templates/order/sales_order_base.html:123
#: templates/js/translated/table_filters.js:98
-#: templates/js/translated/table_filters.js:520
-#: templates/js/translated/table_filters.js:622
-#: templates/js/translated/table_filters.js:663
+#: templates/js/translated/table_filters.js:484
+#: templates/js/translated/table_filters.js:586
+#: templates/js/translated/table_filters.js:627
msgid "Overdue"
msgstr ""
@@ -1770,8 +1772,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1781,7 +1783,7 @@ msgstr ""
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:766
#: templates/js/translated/sales_order.js:989
-#: templates/js/translated/stock.js:2895
+#: templates/js/translated/stock.js:2846
msgid "Sales Order"
msgstr ""
@@ -1793,7 +1795,7 @@ msgid "Issued By"
msgstr ""
#: build/templates/build/build_base.html:212
-#: build/templates/build/detail.html:94 templates/js/translated/build.js:2138
+#: build/templates/build/detail.html:94 templates/js/translated/build.js:2126
msgid "Priority"
msgstr ""
@@ -1821,8 +1823,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
-#: templates/js/translated/purchase_order.js:2168
+#: build/templates/build/detail.html:49 order/models.py:1235
+#: templates/js/translated/purchase_order.js:2164
msgid "Destination"
msgstr ""
@@ -1834,15 +1836,15 @@ msgstr ""
msgid "Allocated Parts"
msgstr ""
-#: build/templates/build/detail.html:80 stock/admin.py:123
+#: build/templates/build/detail.html:80 stock/admin.py:105
#: stock/templates/stock/item_base.html:163
-#: templates/js/translated/build.js:1361
-#: templates/js/translated/model_renderers.js:233
+#: templates/js/translated/build.js:1353
+#: templates/js/translated/model_renderers.js:230
#: templates/js/translated/purchase_order.js:1259
-#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2160
-#: templates/js/translated/stock.js:3096
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:404
+#: templates/js/translated/stock.js:1092 templates/js/translated/stock.js:2122
+#: templates/js/translated/stock.js:3047
+#: templates/js/translated/table_filters.js:289
+#: templates/js/translated/table_filters.js:380
msgid "Batch"
msgstr ""
@@ -1850,7 +1852,7 @@ msgstr ""
#: order/templates/order/order_base.html:173
#: order/templates/order/return_order_base.html:152
#: order/templates/order/sales_order_base.html:187
-#: templates/js/translated/build.js:2181
+#: templates/js/translated/build.js:2169
msgid "Created"
msgstr ""
@@ -1860,7 +1862,7 @@ msgstr ""
#: build/templates/build/detail.html:149
#: order/templates/order/sales_order_base.html:203
-#: templates/js/translated/table_filters.js:685
+#: templates/js/translated/table_filters.js:649
msgid "Completed"
msgstr ""
@@ -2007,11 +2009,11 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:71
+#: common/models.py:70
msgid "Updated"
msgstr ""
-#: common/models.py:72
+#: common/models.py:71
msgid "Timestamp of last update"
msgstr ""
@@ -2023,1467 +2025,1438 @@ msgstr ""
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:595
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:597
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:638
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:655
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:666
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:705
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:912
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:937
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:939
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
-msgid "No plugin"
-msgstr ""
-
-#: common/models.py:1060
+#: common/models.py:996
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:997
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
-msgid "Pending migrations"
-msgstr ""
-
-#: common/models.py:1069
-msgid "Number of pending database migrations"
-msgstr ""
-
-#: common/models.py:1075
+#: common/models.py:1004
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1006
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1011
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1012
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1018
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1019
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1025 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1026
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1031
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1032
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1039
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1040
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
-msgid "Currency Update Interval"
-msgstr ""
-
-#: common/models.py:1119
-msgid "How often to update exchange rates (set to zero to disable)"
-msgstr ""
-
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
-msgid "days"
-msgstr ""
-
-#: common/models.py:1129
-msgid "Currency Update Plugin"
-msgstr ""
-
-#: common/models.py:1130
-msgid "Currency update plugin to use"
-msgstr ""
-
-#: common/models.py:1136
+#: common/models.py:1047
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1048
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1054
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1055
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1066
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1067
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1072
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1073
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1079
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1080
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1089
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1090
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1096 common/models.py:1114 common/models.py:1121
+#: common/models.py:1132 common/models.py:1143 common/models.py:1374
+#: common/models.py:1398 common/models.py:1521 common/models.py:1777
+msgid "days"
+msgstr ""
+
+#: common/models.py:1100
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1101
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1107
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1108
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1118
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1119
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1129
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1130
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1140
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1141
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1151 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
-msgid "Enable barcode scanner support in the web interface"
+#: common/models.py:1152
+msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1158
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1159
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1169
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1170
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1176
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1177
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1183
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1184
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1188
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1189
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1195
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1196
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1202
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1203
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1209
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1210
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1216
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1217
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1223
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1224
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:763
+#: common/models.py:1230 part/admin.py:55 part/models.py:3621
+#: report/models.py:170 templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:727
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1231
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
-#: templates/js/translated/table_filters.js:330
-#: templates/js/translated/table_filters.js:717
+#: common/models.py:1237 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
+#: templates/js/translated/table_filters.js:306
+#: templates/js/translated/table_filters.js:681
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1238
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
-#: templates/js/translated/table_filters.js:725
+#: common/models.py:1244 part/admin.py:52 part/models.py:1007
+#: templates/js/translated/table_filters.js:689
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1245
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1251 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1252
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
-#: templates/js/translated/table_filters.js:751
+#: common/models.py:1258 part/admin.py:54 part/models.py:1023
+#: templates/js/translated/table_filters.js:715
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1259
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1265 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:767
+#: templates/js/translated/table_filters.js:731
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1266
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1272 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:771
+#: templates/js/translated/table_filters.js:735
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1273
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1279
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1280
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1286
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1287
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1293
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1294
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1300 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1301
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1307
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1308
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1315
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1316
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1321
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1322
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1328
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1329
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1339
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1340
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1350
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1351
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1357
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1358
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1364
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1365
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1371
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1372
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1382
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1383
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1389
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1390
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1396
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1397
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1407
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1408
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1414
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1415
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1421
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1422
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1428
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1429
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1438
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1439
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1445 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1446
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1452
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1453
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1463
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1464
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1470
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1471
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1477
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1478
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1484
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1485
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1491
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1492
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1498
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1499
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1504
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1505
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1511
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1512
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1518
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1519
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1526
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1527
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1533
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1534
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1540
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1541
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1546
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1547
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1553
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1554
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1560
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1561
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1567
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1568
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1574
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1575
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1581
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1582
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1588
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1589
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1595
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1596
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1602
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1603
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1609
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1610
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1617
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1618
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1624
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1625
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1631
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1632
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1638
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1639
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1645
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1646
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1652
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1653
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1659
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1660
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1666
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1667
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1673
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1674
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1680
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1681
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1687
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1688
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1694
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1695
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1703
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1704
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1711
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1712
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1719
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1720
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1727
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1728
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1735
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1736
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1743
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1744
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1750
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1751
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1757
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1758
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1764
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1765
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1774
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1775
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1792 common/models.py:2222
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1833
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1834
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1840
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1841
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1847
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1848
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1854
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1855
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1861
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1862
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1868
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1869
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1875
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1876
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1882
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1883
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1889
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1890
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1896
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1897
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1903
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:1904
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:1910
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:1911
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:1917
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:1918
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:1924
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:1925
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:1931
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:1932
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:1938
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:1939
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:1945
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:1946
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:1952
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:1953
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:1959
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:1960
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:1966
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:1967
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:1973
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:1974
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:1980
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:1981
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:1987
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:1988
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:1994
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:1995
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2001
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2002
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2008
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2009
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2015
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2016
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2022
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2023
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2029
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2030
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2036
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2037
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2043
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2044
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2050
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2051
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2057
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2058
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2064
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2065
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2071
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2072
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2078
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2079
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2085
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2086
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2092
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2093
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2099
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2100
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2106
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2107
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2113
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2114
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2120
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2121
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2127
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2128
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2134
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2135
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2141
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2142
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2156 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2157
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2163 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2164
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2170
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2171
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2180
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2181
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2189
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2190
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2198
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2199
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2207
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2208
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2252
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
-#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
+#: common/models.py:2259 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1952
+#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1864
#: templates/js/translated/pricing.js:621
-#: templates/js/translated/return_order.js:738
+#: templates/js/translated/return_order.js:734
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2260
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2420 common/models.py:2598
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2421
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2430
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2435 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
-#: templates/js/translated/table_filters.js:488
-#: templates/js/translated/table_filters.js:516
-#: templates/js/translated/table_filters.js:712
+#: templates/js/translated/table_filters.js:464
+#: templates/js/translated/table_filters.js:480
+#: templates/js/translated/table_filters.js:676
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2436
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2450
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2451
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2458
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2459
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2565
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2566
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2574
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2575
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2582
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2583
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2589
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2590
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2599
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2604
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2605
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2759
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2765 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2775 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
-#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
+#: common/models.py:2780 templates/InvenTree/settings/plugin_settings.html:32
+#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:106
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2785 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2790
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2791
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2811 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3493,56 +3466,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2812
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2856
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2878
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2884 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2885
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2891 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2892
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3573,7 +3546,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3615,7 +3588,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3657,301 +3630,301 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:675
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:438
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
#: templates/js/translated/company.js:1286
#: templates/js/translated/company.js:1601
-#: templates/js/translated/table_filters.js:792
+#: templates/js/translated/table_filters.js:756
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:444
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
-#: templates/js/translated/company.js:1620 templates/js/translated/part.js:1797
-#: templates/js/translated/purchase_order.js:1830
-#: templates/js/translated/purchase_order.js:2032
+#: templates/js/translated/company.js:1620 templates/js/translated/part.js:1781
+#: templates/js/translated/purchase_order.js:1826
+#: templates/js/translated/purchase_order.js:2028
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
-#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
-#: templates/js/translated/stock.js:1502
+#: stock/models.py:2286 templates/js/translated/company.js:1156
+#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1473
+#: templates/js/translated/stock.js:1464
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
-#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
-#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
+#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1492
+#: templates/js/translated/part.js:1596 templates/js/translated/part.js:2344
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:427 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
-#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1765
+#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1749
#: templates/js/translated/pricing.js:498
-#: templates/js/translated/purchase_order.js:1672
-#: templates/js/translated/table_filters.js:796
+#: templates/js/translated/purchase_order.js:1668
+#: templates/js/translated/table_filters.js:760
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
-#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:433
+#: templates/js/translated/company.js:349 templates/js/translated/part.js:1767
#: templates/js/translated/pricing.js:510
-#: templates/js/translated/purchase_order.js:1829
-#: templates/js/translated/purchase_order.js:2007
+#: templates/js/translated/purchase_order.js:1825
+#: templates/js/translated/purchase_order.js:2003
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:433
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:119 stock/models.py:701 stock/serializers.py:1238
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
-#: templates/js/translated/stock.js:2394
+#: templates/js/translated/stock.js:2356
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
-#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
+#: company/models.py:746 templates/js/translated/company.js:1641
+#: templates/js/translated/part.js:1801 templates/js/translated/part.js:1856
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
#: templates/js/translated/purchase_order.js:1088
-#: templates/js/translated/purchase_order.js:2063
-#: templates/js/translated/purchase_order.js:2080
+#: templates/js/translated/purchase_order.js:2059
+#: templates/js/translated/purchase_order.js:2076
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4013,17 +3986,17 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1751 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:720
+#: stock/models.py:721 stock/serializers.py:985
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
#: templates/js/translated/return_order.js:293
#: templates/js/translated/sales_order.js:781
-#: templates/js/translated/stock.js:2930
-#: templates/js/translated/table_filters.js:800
+#: templates/js/translated/stock.js:2881
+#: templates/js/translated/table_filters.js:764
msgid "Customer"
msgstr ""
@@ -4031,7 +4004,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4195,7 +4168,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4226,7 +4199,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4247,7 +4220,7 @@ msgid "New Parameter"
msgstr ""
#: company/templates/company/manufacturer_part.html:206
-#: templates/js/translated/part.js:1419
+#: templates/js/translated/part.js:1403
msgid "Add Parameter"
msgstr ""
@@ -4276,11 +4249,11 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:684
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
-#: templates/js/translated/stock.js:2250
+#: templates/js/translated/stock.js:2212
msgid "Supplier Part"
msgstr ""
@@ -4336,7 +4309,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:211
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:199
-#: templates/js/translated/stock.js:537
+#: templates/js/translated/stock.js:503
msgid "New Stock Item"
msgstr ""
@@ -4366,15 +4339,15 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
-#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: part/templates/part/category_sidebar.html:17 stock/admin.py:47
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1057
-#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737
+#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1041
+#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2699
#: users/models.py:41
msgid "Stock Items"
msgstr ""
@@ -4383,28 +4356,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4424,7 +4397,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:277
msgid "Enabled"
msgstr ""
@@ -4448,7 +4421,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:270
msgid "Filename Pattern"
msgstr ""
@@ -4462,8 +4435,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:298 report/models.py:445
+#: report/models.py:483 report/models.py:521 report/models.py:645
msgid "Filters"
msgstr ""
@@ -4480,573 +4453,573 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
-#: templates/js/translated/purchase_order.js:2104
+#: templates/js/translated/purchase_order.js:2100
#: templates/js/translated/sales_order.js:1844
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
#: stock/templates/stock/item_base.html:177
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/part.js:1742 templates/js/translated/pricing.js:804
+#: templates/js/translated/part.js:1726 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:165
#: templates/js/translated/purchase_order.js:759
-#: templates/js/translated/purchase_order.js:1656
-#: templates/js/translated/stock.js:2230 templates/js/translated/stock.js:2878
+#: templates/js/translated/purchase_order.js:1652
+#: templates/js/translated/stock.js:2192 templates/js/translated/stock.js:2829
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1922 order/models.py:1968
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
#: templates/js/translated/return_order.js:278
-#: templates/js/translated/stock.js:2912
+#: templates/js/translated/stock.js:2863
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
-#: templates/js/translated/purchase_order.js:1681
+#: order/models.py:404 order/templates/order/order_base.html:148
+#: templates/js/translated/purchase_order.js:1677
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1774
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1775
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1781
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1768
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1769
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1921
+#: order/models.py:1968 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
-#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
+#: order/models.py:1216 order/templates/order/order_base.html:196
+#: templates/js/translated/part.js:1849 templates/js/translated/part.js:1880
#: templates/js/translated/purchase_order.js:1291
-#: templates/js/translated/purchase_order.js:2148
-#: templates/js/translated/return_order.js:761
+#: templates/js/translated/purchase_order.js:2144
+#: templates/js/translated/return_order.js:757
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:598
+#: templates/js/translated/table_filters.js:562
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:823 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
-#: templates/js/translated/stock.js:2281
+#: templates/js/translated/stock.js:2243
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1640 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:433
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1605
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1607
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1610
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1620 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1623
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1624
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1632
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1641
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
-#: templates/js/translated/return_order.js:719
+#: order/models.py:1654 order/models.py:1929
+#: templates/js/translated/return_order.js:715
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1655
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1658
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1738
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1752
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1763
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1914
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1930
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1935
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1936
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1947 templates/js/translated/return_order.js:726
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1947
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1953
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5214,12 +5187,12 @@ msgstr ""
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:133 templates/js/translated/build.js:518
-#: templates/js/translated/build.js:1610
+#: templates/js/translated/build.js:1602
#: templates/js/translated/purchase_order.js:703
#: templates/js/translated/purchase_order.js:1221
#: templates/js/translated/return_order.js:503
#: templates/js/translated/sales_order.js:1106
-#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:680 templates/js/translated/stock.js:849
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -5342,8 +5315,8 @@ msgstr ""
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:99
#: part/templates/part/part_pricing.html:114
-#: templates/js/translated/part.js:1069
-#: templates/js/translated/purchase_order.js:1731
+#: templates/js/translated/part.js:1053
+#: templates/js/translated/purchase_order.js:1727
#: templates/js/translated/return_order.js:378
#: templates/js/translated/sales_order.js:852
msgid "Total Cost"
@@ -5403,7 +5376,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5433,47 +5406,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
-#: stock/admin.py:119
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
+#: stock/admin.py:101
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
-#: stock/admin.py:120
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
+#: stock/admin.py:102
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
-#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
-#: templates/js/translated/stock.js:2006
+#: templates/js/translated/part.js:1207 templates/js/translated/part.js:2315
+#: templates/js/translated/stock.js:1968
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
-#: templates/js/translated/part.js:2342
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:183 templates/js/translated/part.js:1212
+#: templates/js/translated/part.js:2321
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5481,23 +5454,23 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
#: part/admin.py:61 part/templates/part/part_base.html:199
#: templates/js/translated/company.js:1679
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:331
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2585
+#: templates/js/translated/part.js:690 templates/js/translated/part.js:2127
#: templates/js/translated/table_filters.js:170
msgid "On Order"
msgstr ""
@@ -5506,107 +5479,107 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:142
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:2147
+#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:124
+#: templates/js/translated/part.js:695 templates/js/translated/part.js:2131
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:950
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:960
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:42 stock/admin.py:116
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:43
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:336
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/part.js:2799 templates/js/translated/search.js:130
+#: templates/js/translated/part.js:2778 templates/js/translated/search.js:130
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5615,7 +5588,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5630,9 +5603,9 @@ msgstr ""
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:134 stock/models.py:187 templates/js/translated/stock.js:2743
+#: part/models.py:134 stock/models.py:124 templates/js/translated/stock.js:2705
#: templates/js/translated/table_filters.js:239
-#: templates/js/translated/table_filters.js:283
+#: templates/js/translated/table_filters.js:259
msgid "Structural"
msgstr ""
@@ -5648,12 +5621,11 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:145 stock/models.py:85 stock/models.py:175
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: part/models.py:145 stock/models.py:113
msgid "Icon"
msgstr ""
-#: part/models.py:146 stock/models.py:176
+#: part/models.py:146 stock/models.py:114
msgid "Icon (optional)"
msgstr ""
@@ -5661,719 +5633,719 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:349 part/serializers.py:964
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
-#: templates/js/translated/part.js:2372
+#: templates/js/translated/part.js:2351
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
-#: templates/js/translated/part.js:2466
+#: templates/js/translated/part.js:2445
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
-#: templates/js/translated/part.js:1082 templates/js/translated/pricing.js:826
+#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/js/translated/part.js:1066 templates/js/translated/pricing.js:826
#: templates/js/translated/pricing.js:950
-#: templates/js/translated/purchase_order.js:1710
-#: templates/js/translated/stock.js:2792
+#: templates/js/translated/purchase_order.js:1706
+#: templates/js/translated/stock.js:2743
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:425
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:432
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2842
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
-#: templates/js/translated/table_filters.js:477
+#: part/models.py:3348 templates/js/translated/part.js:2851
+#: templates/js/translated/table_filters.js:453
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2859
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2866
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
-#: templates/js/translated/table_filters.js:817
+#: part/models.py:3484 templates/js/translated/part.js:1608
+#: templates/js/translated/table_filters.js:781
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1617
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:577
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:342
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:350
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:381
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:381
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:386
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:386
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:391 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:391
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:396
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:396
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:401
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:401
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:411
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:411
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:417
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:417
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:427
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:438
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:444
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:452
+#: part/serializers.py:451
msgid "Selected company is not a valid supplier"
msgstr ""
@@ -6381,186 +6353,186 @@ msgstr ""
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:471
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:479
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
-#: templates/js/translated/part.js:468
+#: part/serializers.py:732 part/templates/part/copy_part.html:9
+#: templates/js/translated/part.js:452
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:732
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:737 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:737
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:742
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:742
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:748
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:749
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:958
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:964
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:970
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:975
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:976
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:981
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:982
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:987
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:988
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:996
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1086
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1087
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1374
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1382
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1383
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1388
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1389
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1394
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1395
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1400
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1401
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1441
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1442
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1472
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1515
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1518
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1521
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1530
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1538
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1559
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
-#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
-#: templates/js/translated/purchase_order.js:2063
+#: part/stocktake.py:225 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1801 templates/js/translated/part.js:1856
+#: templates/js/translated/purchase_order.js:2059
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:295
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:296
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6700,9 +6672,9 @@ msgid "Add stocktake information"
msgstr ""
#: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50
-#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30
+#: stock/admin.py:130 templates/InvenTree/settings/part_stocktake.html:30
#: templates/InvenTree/settings/sidebar.html:53
-#: templates/js/translated/stock.js:2186 users/models.py:39
+#: templates/js/translated/stock.js:2148 users/models.py:39
msgid "Stocktake"
msgstr ""
@@ -6776,7 +6748,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6800,15 +6772,15 @@ msgstr ""
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:659
+#: part/templates/part/detail.html:654
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:667
+#: part/templates/part/detail.html:662
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:752
+#: part/templates/part/detail.html:747
msgid "Add Test Result Template"
msgstr ""
@@ -6889,7 +6861,7 @@ msgstr ""
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:93 templates/js/translated/part.js:2288
+#: part/templates/part/part_base.html:93 templates/js/translated/part.js:2267
msgid "Part actions"
msgstr ""
@@ -6936,8 +6908,8 @@ msgstr ""
#: part/templates/part/part_base.html:148
#: templates/js/translated/company.js:1277
#: templates/js/translated/company.js:1565
-#: templates/js/translated/model_renderers.js:304
-#: templates/js/translated/part.js:811 templates/js/translated/part.js:1215
+#: templates/js/translated/model_renderers.js:291
+#: templates/js/translated/part.js:795 templates/js/translated/part.js:1199
msgid "Inactive"
msgstr ""
@@ -6960,7 +6932,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -6969,7 +6941,7 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:324 templates/js/translated/bom.js:1071
-#: templates/js/translated/part.js:1261 templates/js/translated/part.js:2439
+#: templates/js/translated/part.js:1245 templates/js/translated/part.js:2418
#: templates/js/translated/pricing.js:391
#: templates/js/translated/pricing.js:1054
msgid "Price Range"
@@ -6992,7 +6964,7 @@ msgstr ""
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:474 templates/js/translated/part.js:2282
+#: part/templates/part/part_base.html:474 templates/js/translated/part.js:2261
msgid "part"
msgstr ""
@@ -7066,9 +7038,9 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:51
-#: templates/js/translated/part.js:1239 templates/js/translated/part.js:2140
-#: templates/js/translated/part.js:2387 templates/js/translated/stock.js:1059
-#: templates/js/translated/stock.js:2040 templates/navbar.html:31
+#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2124
+#: templates/js/translated/part.js:2366 templates/js/translated/stock.js:1021
+#: templates/js/translated/stock.js:2002 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -7097,11 +7069,11 @@ msgstr ""
msgid "Refresh Part Pricing"
msgstr ""
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:25 stock/admin.py:129
#: stock/templates/stock/item_base.html:447
#: templates/js/translated/company.js:1693
#: templates/js/translated/company.js:1703
-#: templates/js/translated/stock.js:2216
+#: templates/js/translated/stock.js:2178
msgid "Last Updated"
msgstr ""
@@ -7164,8 +7136,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:701
-#: templates/js/translated/part.js:2135 templates/js/translated/part.js:2137
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:685
+#: templates/js/translated/part.js:2119 templates/js/translated/part.js:2121
msgid "No Stock"
msgstr ""
@@ -7218,11 +7190,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7260,7 +7232,7 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:109
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
@@ -7272,12 +7244,12 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:119
-#: templates/js/translated/purchase_order.js:1391
+#: plugin/base/barcodes/api.py:120
+#: templates/js/translated/purchase_order.js:1387
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:215
+#: plugin/base/barcodes/api.py:217
msgid "No match found for provided value"
msgstr ""
@@ -7295,7 +7267,6 @@ msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:28
#: plugin/builtin/integration/core_notifications.py:34
-#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
msgid "InvenTree contributors"
msgstr ""
@@ -7334,18 +7305,10 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
-#: plugin/builtin/integration/currency_exchange.py:23
-msgid "InvenTree Currency Exchange"
-msgstr ""
-
-#: plugin/builtin/integration/currency_exchange.py:24
-msgid "Default currency exchange integration"
-msgstr ""
-
#: plugin/builtin/labels/inventree_label.py:20
msgid "InvenTree PDF label printer"
msgstr ""
@@ -7362,23 +7325,6 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/installer.py:140
-msgid "Permission denied: only staff users can install plugins"
-msgstr ""
-
-#: plugin/installer.py:186
-msgid "Installed plugin successfully"
-msgstr ""
-
-#: plugin/installer.py:192
-#, python-brace-format
-msgid "Installed plugin into {path}"
-msgstr ""
-
-#: plugin/installer.py:201
-msgid "Plugin installation failed"
-msgstr ""
-
#: plugin/models.py:28
msgid "Plugin Configuration"
msgstr ""
@@ -7403,43 +7349,37 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
-#: templates/js/translated/table_filters.js:500
-msgid "Installed"
-msgstr ""
-
-#: plugin/models.py:138
+#: plugin/models.py:131
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:140
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
-#: templates/js/translated/plugin.js:50
+#: plugin/models.py:166 templates/InvenTree/settings/plugin_settings.html:9
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:217
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:478
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:480
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:482
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7476,184 +7416,148 @@ msgstr ""
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/samples/integration/sample_currency_exchange.py:15
-msgid "Sample currency exchange plugin"
-msgstr ""
-
-#: plugin/samples/integration/sample_currency_exchange.py:18
-msgid "InvenTree Contributors"
-msgstr ""
-
-#: plugin/serializers.py:87
+#: plugin/serializers.py:90
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:88
+#: plugin/serializers.py:91
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:93
+#: plugin/serializers.py:96
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:94
+#: plugin/serializers.py:97
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:97
+#: plugin/serializers.py:100
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:98
+#: plugin/serializers.py:101
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:110
+#: plugin/serializers.py:113
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:112
+#: plugin/serializers.py:115
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:193
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:194
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
-#: report/helpers.py:14
-msgid "A3"
-msgstr ""
-
-#: report/helpers.py:15
-msgid "Legal"
-msgstr ""
-
-#: report/helpers.py:16
-msgid "Letter"
-msgstr ""
-
-#: report/models.py:171
+#: report/models.py:165
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:171
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:178
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:184
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
-msgid "Page size for PDF reports"
-msgstr ""
-
-#: report/models.py:203
-msgid "Landscape"
-msgstr ""
-
-#: report/models.py:204
-msgid "Render report in landscape orientation"
-msgstr ""
-
-#: report/models.py:305
+#: report/models.py:271
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:278
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:299
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:307
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:308
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:369
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:370
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:411
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:412
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:446
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:484
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:522
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:575
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:576
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:580
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:617
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:618
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:625
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:646
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7674,7 +7578,7 @@ msgstr ""
#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527
#: templates/js/translated/pricing.js:596
#: templates/js/translated/pricing.js:834
-#: templates/js/translated/purchase_order.js:2094
+#: templates/js/translated/purchase_order.js:2090
#: templates/js/translated/sales_order.js:1834
msgid "Unit Price"
msgstr ""
@@ -7687,23 +7591,23 @@ msgstr ""
#: report/templates/report/inventree_po_report_base.html:72
#: report/templates/report/inventree_so_report_base.html:72
-#: templates/js/translated/purchase_order.js:1996
+#: templates/js/translated/purchase_order.js:1992
#: templates/js/translated/sales_order.js:1803
msgid "Total"
msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
-#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
-#: templates/js/translated/build.js:2337
-#: templates/js/translated/model_renderers.js:222
+#: stock/models.py:725 stock/templates/stock/item_base.html:312
+#: templates/js/translated/build.js:508 templates/js/translated/build.js:1340
+#: templates/js/translated/build.js:2325
+#: templates/js/translated/model_renderers.js:219
#: templates/js/translated/return_order.js:537
-#: templates/js/translated/return_order.js:721
+#: templates/js/translated/return_order.js:717
#: templates/js/translated/sales_order.js:312
#: templates/js/translated/sales_order.js:1608
#: templates/js/translated/sales_order.js:1693
-#: templates/js/translated/stock.js:596
+#: templates/js/translated/stock.js:562
msgid "Serial Number"
msgstr ""
@@ -7720,12 +7624,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2274 templates/js/translated/stock.js:1437
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2280
msgid "Result"
msgstr ""
@@ -7751,377 +7655,356 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:168
-#: stock/admin.py:122 templates/js/translated/stock.js:700
-#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3079
+#: stock/admin.py:104 templates/js/translated/stock.js:666
+#: templates/js/translated/stock.js:837 templates/js/translated/stock.js:3030
msgid "Serial"
msgstr ""
-#: stock/admin.py:40 stock/admin.py:126
+#: stock/admin.py:39 stock/admin.py:108
msgid "Location ID"
msgstr ""
-#: stock/admin.py:41 stock/admin.py:127
+#: stock/admin.py:40 stock/admin.py:109
msgid "Location Name"
msgstr ""
-#: stock/admin.py:45 stock/templates/stock/location.html:130
+#: stock/admin.py:44 stock/templates/stock/location.html:130
#: stock/templates/stock/location.html:136
msgid "Location Path"
msgstr ""
-#: stock/admin.py:118
+#: stock/admin.py:100
msgid "Stock Item ID"
msgstr ""
-#: stock/admin.py:125
+#: stock/admin.py:107
msgid "Status Code"
msgstr ""
-#: stock/admin.py:128
+#: stock/admin.py:110
msgid "Supplier Part ID"
msgstr ""
-#: stock/admin.py:129
+#: stock/admin.py:111
msgid "Supplier ID"
msgstr ""
-#: stock/admin.py:130
+#: stock/admin.py:112
msgid "Supplier Name"
msgstr ""
-#: stock/admin.py:131
+#: stock/admin.py:113
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:114 stock/models.py:708
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
-#: stock/admin.py:133
+#: stock/admin.py:115
msgid "Build ID"
msgstr ""
-#: stock/admin.py:135
+#: stock/admin.py:117
msgid "Sales Order ID"
msgstr ""
-#: stock/admin.py:136
+#: stock/admin.py:118
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:143
+#: stock/admin.py:125
msgid "Review Needed"
msgstr ""
-#: stock/admin.py:144
+#: stock/admin.py:126
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:131 stock/models.py:789
#: stock/templates/stock/item_base.html:434
-#: templates/js/translated/stock.js:2200
+#: templates/js/translated/stock.js:2162
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:434 templates/js/translated/table_filters.js:403
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:641
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:648
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:676
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:685
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:708
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:56
-msgid "Stock Location type"
-msgstr ""
-
-#: stock/models.py:57
-msgid "Stock Location types"
-msgstr ""
-
-#: stock/models.py:86
-msgid "Default icon for all locations that have no icon set (optional)"
-msgstr ""
-
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:54 stock/models.py:692
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:117 stock/templates/stock/location.html:178
+#: stock/models.py:55 stock/templates/stock/location.html:178
#: templates/InvenTree/search.html:166 templates/js/translated/search.js:178
#: users/models.py:40
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:118 stock/models.py:828
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:119 stock/models.py:829
msgid "Select Owner"
msgstr ""
-#: stock/models.py:189
+#: stock/models.py:126
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:195 templates/js/translated/stock.js:2752
+#: stock/models.py:132 templates/js/translated/stock.js:2714
#: templates/js/translated/table_filters.js:243
msgid "External"
msgstr ""
-#: stock/models.py:196
+#: stock/models.py:133
msgid "This is an external stock location"
msgstr ""
-#: stock/models.py:202 templates/js/translated/stock.js:2761
-#: templates/js/translated/table_filters.js:246
-msgid "Location type"
-msgstr ""
-
-#: stock/models.py:205
-msgid "Stock location type of this location"
-msgstr ""
-
-#: stock/models.py:270
+#: stock/models.py:175
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:557
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:583 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:600
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:610 stock/models.py:619
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:611
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:633
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:639
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:653
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:667
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:677
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:685
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:695
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:702 stock/serializers.py:1239
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:711
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:727
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:741 stock/serializers.py:1224
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:746
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:753
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:755
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:761 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:763
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:774
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:777
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:783
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:790
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:824
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:852
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1378
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1384
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1390
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1393
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1396
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1403 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1474
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1477
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1480
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1483
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1486
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1489
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1496 stock/serializers.py:1135
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1500
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1504
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1508
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1702
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2192
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2250
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2256
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2275
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2281
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2287
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2294
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2300
msgid "Test notes"
msgstr ""
@@ -8133,141 +8016,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1092 stock/serializers.py:1363
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:947
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:951
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:955
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:986
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:992
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1000
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1010 stock/serializers.py:1270
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1099
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1104
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1105
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1110
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1111
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1121
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1210
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1231
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1260
msgid "Stock transaction notes"
msgstr ""
@@ -8308,7 +8191,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3230
+#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3177
msgid "Install Stock Item"
msgstr ""
@@ -8316,7 +8199,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1667
+#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1629
msgid "Add Test Result"
msgstr ""
@@ -8339,17 +8222,17 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:80
-#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1792
+#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1754
msgid "Count stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: templates/js/translated/stock.js:1774
+#: templates/js/translated/stock.js:1736
msgid "Add stock"
msgstr ""
#: stock/templates/stock/item_base.html:83
-#: templates/js/translated/stock.js:1783
+#: templates/js/translated/stock.js:1745
msgid "Remove stock"
msgstr ""
@@ -8358,12 +8241,12 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:89
-#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1801
+#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1763
msgid "Transfer stock"
msgstr ""
#: stock/templates/stock/item_base.html:92
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1817
msgid "Assign to customer"
msgstr ""
@@ -8404,7 +8287,7 @@ msgid "Delete stock item"
msgstr ""
#: stock/templates/stock/item_base.html:170 templates/InvenTree/search.html:139
-#: templates/js/translated/build.js:2105 templates/navbar.html:38
+#: templates/js/translated/build.js:2093 templates/navbar.html:38
msgid "Build"
msgstr ""
@@ -8470,7 +8353,7 @@ msgid "Available Quantity"
msgstr ""
#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/build.js:2362
+#: templates/js/translated/build.js:2350
msgid "No location set"
msgstr ""
@@ -8488,7 +8371,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:438
-#: templates/js/translated/table_filters.js:435
+#: templates/js/translated/table_filters.js:411
msgid "Expired"
msgstr ""
@@ -8498,7 +8381,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:440
-#: templates/js/translated/table_filters.js:441
+#: templates/js/translated/table_filters.js:417
msgid "Stale"
msgstr ""
@@ -8507,7 +8390,7 @@ msgid "No stocktake performed"
msgstr ""
#: stock/templates/stock/item_base.html:508
-#: templates/js/translated/stock.js:1922
+#: templates/js/translated/stock.js:1884
msgid "stock item"
msgstr ""
@@ -8539,7 +8422,7 @@ msgstr ""
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:663
+#: stock/templates/stock/item_base.html:659
msgid "Return to Stock"
msgstr ""
@@ -8617,20 +8500,20 @@ msgstr ""
msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:288
-#: templates/js/translated/stock.js:2543
+#: stock/templates/stock/location.html:279
+#: templates/js/translated/stock.js:2505
msgid "stock location"
msgstr ""
-#: stock/templates/stock/location.html:316
+#: stock/templates/stock/location.html:307
msgid "Scanned stock container into this location"
msgstr ""
-#: stock/templates/stock/location.html:389
+#: stock/templates/stock/location.html:380
msgid "Stock Location QR Code"
msgstr ""
-#: stock/templates/stock/location.html:400
+#: stock/templates/stock/location.html:391
msgid "Link Barcode to Stock Location"
msgstr ""
@@ -8940,7 +8823,7 @@ msgid "Plugins"
msgstr ""
#: templates/InvenTree/settings/plugin.html:41
-#: templates/js/translated/plugin.js:150
+#: templates/js/translated/plugin.js:151
msgid "Install Plugin"
msgstr ""
@@ -8966,7 +8849,7 @@ msgid "Plugin information"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:42
-#: templates/js/translated/plugin.js:85
+#: templates/js/translated/plugin.js:89
msgid "Version"
msgstr ""
@@ -9003,8 +8886,7 @@ msgid "Installation path"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:100
-#: templates/js/translated/plugin.js:67
-#: templates/js/translated/table_filters.js:492
+#: templates/js/translated/plugin.js:77
msgid "Builtin"
msgstr ""
@@ -9012,31 +8894,21 @@ msgstr ""
msgid "This is a builtin plugin which cannot be disabled"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:107
-#: templates/js/translated/plugin.js:71
-#: templates/js/translated/table_filters.js:496
-msgid "Sample"
-msgstr ""
-
-#: templates/InvenTree/settings/plugin_settings.html:108
-msgid "This is a sample plugin"
-msgstr ""
-
-#: templates/InvenTree/settings/plugin_settings.html:113
+#: templates/InvenTree/settings/plugin_settings.html:106
msgid "Commit Author"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:117
+#: templates/InvenTree/settings/plugin_settings.html:110
#: templates/about.html:36
msgid "Commit Date"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:121
+#: templates/InvenTree/settings/plugin_settings.html:114
#: templates/about.html:29
msgid "Commit Hash"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:125
+#: templates/InvenTree/settings/plugin_settings.html:118
msgid "Commit Message"
msgstr ""
@@ -9125,9 +8997,9 @@ msgid "Edit"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:81
-#: templates/js/translated/forms.js:508 templates/js/translated/helpers.js:105
-#: templates/js/translated/part.js:389 templates/js/translated/pricing.js:629
-#: templates/js/translated/stock.js:245 users/models.py:257
+#: templates/js/translated/forms.js:506 templates/js/translated/helpers.js:105
+#: templates/js/translated/part.js:373 templates/js/translated/pricing.js:629
+#: templates/js/translated/stock.js:215 users/models.py:256
msgid "Delete"
msgstr ""
@@ -9162,12 +9034,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:288
-#: templates/js/translated/part.js:1642
+#: templates/js/translated/part.js:1626
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:289
-#: templates/js/translated/part.js:1643
+#: templates/js/translated/part.js:1627
msgid "Delete Template"
msgstr ""
@@ -9175,44 +9047,18 @@ msgstr ""
msgid "Edit Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:329
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:364
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:390
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:420
-msgid "No stock location types found"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:441
-msgid "Location count"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
-msgid "Edit Location Type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:447
-msgid "Delete Location type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:470
-msgid "Delete Location Type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:480
-#: templates/InvenTree/settings/stock.html:35
-msgid "New Location Type"
-msgstr ""
-
#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -9231,9 +9077,9 @@ msgid "Home Page"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:15
-#: templates/js/translated/forms.js:2045 templates/js/translated/tables.js:543
-#: templates/navbar.html:107 templates/search.html:8
-#: templates/search_form.html:6 templates/search_form.html:7
+#: templates/js/translated/tables.js:543 templates/navbar.html:107
+#: templates/search.html:8 templates/search_form.html:6
+#: templates/search_form.html:7
msgid "Search"
msgstr ""
@@ -9266,10 +9112,6 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:31
-msgid "Stock Location Types"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:13
msgid "Account Settings"
msgstr ""
@@ -9579,7 +9421,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:728
+#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:726
msgid "Confirm"
msgstr ""
@@ -9759,26 +9601,18 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
-msgid "Pending Database Migrations"
-msgstr ""
-
-#: templates/base.html:116
-msgid "There are pending database migrations which require attention"
-msgstr ""
-
#: templates/email/build_order_completed.html:9
#: templates/email/new_order_assigned.html:9
#: templates/email/overdue_build_order.html:9
@@ -9807,7 +9641,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2529
msgid "Required Quantity"
msgstr ""
@@ -9821,15 +9655,15 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/part.js:3182
+#: templates/js/translated/part.js:3161
msgid "Minimum Quantity"
msgstr ""
-#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1130
+#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1124
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1131
+#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1125
msgid "No response from the InvenTree server"
msgstr ""
@@ -9841,27 +9675,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1140
+#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1134
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1141
+#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1135
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1145
+#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1139
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1146
+#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1140
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1150
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1144
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1151
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1145
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -9873,27 +9707,19 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1155
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1149
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1156
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1150
msgid "Connection timeout while requesting data from server"
msgstr ""
#: templates/js/translated/api.js:261
-msgid "Error 503: Service Unavailable"
-msgstr ""
-
-#: templates/js/translated/api.js:262
-msgid "The server is currently unavailable"
-msgstr ""
-
-#: templates/js/translated/api.js:265
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:266
+#: templates/js/translated/api.js:262
msgid "Error code"
msgstr ""
@@ -9962,7 +9788,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:252
-#: templates/js/translated/modals.js:1120
+#: templates/js/translated/modals.js:1114
msgid "Invalid server response"
msgstr ""
@@ -9986,7 +9812,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1117
msgid "Remove stock item"
msgstr ""
@@ -10057,8 +9883,8 @@ msgid "Row Data"
msgstr ""
#: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700
-#: templates/js/translated/modals.js:74 templates/js/translated/modals.js:628
-#: templates/js/translated/modals.js:752 templates/js/translated/modals.js:1060
+#: templates/js/translated/modals.js:71 templates/js/translated/modals.js:622
+#: templates/js/translated/modals.js:746 templates/js/translated/modals.js:1054
#: templates/js/translated/purchase_order.js:802 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
@@ -10176,7 +10002,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2485
+#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2473
msgid "Variant stock allowed"
msgstr ""
@@ -10184,74 +10010,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2567
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2571
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
-#: templates/js/translated/part.js:1253
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2573
+#: templates/js/translated/part.js:1237
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2575
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2558
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2458
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
@@ -10295,13 +10121,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:357 templates/js/translated/stock.js:119
-#: templates/js/translated/stock.js:294
+#: templates/js/translated/build.js:357 templates/js/translated/stock.js:118
+#: templates/js/translated/stock.js:264
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:359 templates/js/translated/stock.js:121
-#: templates/js/translated/stock.js:296
+#: templates/js/translated/build.js:359 templates/js/translated/stock.js:120
+#: templates/js/translated/stock.js:266
msgid "Latest serial number"
msgstr ""
@@ -10353,13 +10179,13 @@ msgstr ""
msgid "Deallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:572 templates/js/translated/build.js:700
-#: templates/js/translated/build.js:826
+#: templates/js/translated/build.js:572 templates/js/translated/build.js:696
+#: templates/js/translated/build.js:818
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:573 templates/js/translated/build.js:701
-#: templates/js/translated/build.js:827
+#: templates/js/translated/build.js:573 templates/js/translated/build.js:697
+#: templates/js/translated/build.js:819
msgid "At least one build output must be selected"
msgstr ""
@@ -10367,265 +10193,264 @@ msgstr ""
msgid "Selected build outputs will be marked as complete"
msgstr ""
-#: templates/js/translated/build.js:591 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:849
+#: templates/js/translated/build.js:591 templates/js/translated/build.js:721
+#: templates/js/translated/build.js:841
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:619
+#: templates/js/translated/build.js:615
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:716
+#: templates/js/translated/build.js:712
msgid "Selected build outputs will be marked as scrapped"
msgstr ""
-#: templates/js/translated/build.js:718
+#: templates/js/translated/build.js:714
msgid "Scrapped output are marked as rejected"
msgstr ""
-#: templates/js/translated/build.js:719
+#: templates/js/translated/build.js:715
msgid "Allocated stock items will no longer be available"
msgstr ""
-#: templates/js/translated/build.js:720
+#: templates/js/translated/build.js:716
msgid "The completion status of the build order will not be adjusted"
msgstr ""
-#: templates/js/translated/build.js:751
+#: templates/js/translated/build.js:743
msgid "Scrap Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:841
+#: templates/js/translated/build.js:833
msgid "Selected build outputs will be deleted"
msgstr ""
-#: templates/js/translated/build.js:843
+#: templates/js/translated/build.js:835
msgid "Build output data will be permanently deleted"
msgstr ""
-#: templates/js/translated/build.js:844
+#: templates/js/translated/build.js:836
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: templates/js/translated/build.js:862
+#: templates/js/translated/build.js:854
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:941
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:978 templates/js/translated/build.js:2326
+#: templates/js/translated/build.js:970 templates/js/translated/build.js:2314
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:984
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1006
msgid "Complete outputs"
msgstr ""
-#: templates/js/translated/build.js:1032
+#: templates/js/translated/build.js:1024
msgid "Scrap outputs"
msgstr ""
-#: templates/js/translated/build.js:1050
+#: templates/js/translated/build.js:1042
msgid "Delete outputs"
msgstr ""
-#: templates/js/translated/build.js:1104
+#: templates/js/translated/build.js:1096
msgid "build output"
msgstr ""
-#: templates/js/translated/build.js:1105
+#: templates/js/translated/build.js:1097
msgid "build outputs"
msgstr ""
-#: templates/js/translated/build.js:1109
+#: templates/js/translated/build.js:1101
msgid "Build output actions"
msgstr ""
-#: templates/js/translated/build.js:1278
+#: templates/js/translated/build.js:1270
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1371
+#: templates/js/translated/build.js:1363
msgid "Allocated Lines"
msgstr ""
-#: templates/js/translated/build.js:1385
+#: templates/js/translated/build.js:1377
msgid "Required Tests"
msgstr ""
-#: templates/js/translated/build.js:1557
+#: templates/js/translated/build.js:1549
#: templates/js/translated/purchase_order.js:627
#: templates/js/translated/sales_order.js:1168
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1558
+#: templates/js/translated/build.js:1550
#: templates/js/translated/sales_order.js:1169
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1621
+#: templates/js/translated/build.js:1613
#: templates/js/translated/sales_order.js:1118
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1698
+#: templates/js/translated/build.js:1690
msgid "All Parts Allocated"
msgstr ""
-#: templates/js/translated/build.js:1699
+#: templates/js/translated/build.js:1691
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:1713
+#: templates/js/translated/build.js:1705
#: templates/js/translated/sales_order.js:1183
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1741
+#: templates/js/translated/build.js:1733
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1752
+#: templates/js/translated/build.js:1744
#: templates/js/translated/sales_order.js:1280
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1817
#: templates/js/translated/sales_order.js:1359
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1922
+#: templates/js/translated/build.js:1914
msgid "Automatic Stock Allocation"
msgstr ""
-#: templates/js/translated/build.js:1923
+#: templates/js/translated/build.js:1915
msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
msgstr ""
-#: templates/js/translated/build.js:1925
+#: templates/js/translated/build.js:1917
msgid "If a location is specified, stock will only be allocated from that location"
msgstr ""
-#: templates/js/translated/build.js:1926
+#: templates/js/translated/build.js:1918
msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
msgstr ""
-#: templates/js/translated/build.js:1927
+#: templates/js/translated/build.js:1919
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:1958
+#: templates/js/translated/build.js:1946
msgid "Allocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:2064
+#: templates/js/translated/build.js:2052
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2099 templates/js/translated/build.js:2464
-#: templates/js/translated/forms.js:2041 templates/js/translated/forms.js:2057
-#: templates/js/translated/part.js:2311 templates/js/translated/part.js:2737
-#: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681
+#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2452
+#: templates/js/translated/part.js:2290 templates/js/translated/part.js:2716
+#: templates/js/translated/stock.js:1915 templates/js/translated/stock.js:2643
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:2113
+#: templates/js/translated/build.js:2101
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:2159
+#: templates/js/translated/build.js:2147
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2195 templates/js/translated/stock.js:3013
+#: templates/js/translated/build.js:2183 templates/js/translated/stock.js:2964
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:2210
+#: templates/js/translated/build.js:2198
msgid "group"
msgstr ""
-#: templates/js/translated/build.js:2371
+#: templates/js/translated/build.js:2359
#: templates/js/translated/sales_order.js:1643
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:2372
+#: templates/js/translated/build.js:2360
#: templates/js/translated/sales_order.js:1644
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:2387
+#: templates/js/translated/build.js:2375
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:2399
+#: templates/js/translated/build.js:2387
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:2440
+#: templates/js/translated/build.js:2428
msgid "build line"
msgstr ""
-#: templates/js/translated/build.js:2441
+#: templates/js/translated/build.js:2429
msgid "build lines"
msgstr ""
-#: templates/js/translated/build.js:2459
+#: templates/js/translated/build.js:2447
msgid "No build lines found"
msgstr ""
-#: templates/js/translated/build.js:2489 templates/js/translated/part.js:787
-#: templates/js/translated/part.js:1199
+#: templates/js/translated/build.js:2477 templates/js/translated/part.js:771
+#: templates/js/translated/part.js:1183
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/build.js:2524
+#: templates/js/translated/build.js:2512
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2573
+#: templates/js/translated/build.js:2561
#: templates/js/translated/sales_order.js:1914
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:2575
+#: templates/js/translated/build.js:2563
#: templates/js/translated/sales_order.js:1912
msgid "Sufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:2622
+#: templates/js/translated/build.js:2610
msgid "Consumable Item"
msgstr ""
-#: templates/js/translated/build.js:2627
+#: templates/js/translated/build.js:2615
msgid "Tracked item"
msgstr ""
-#: templates/js/translated/build.js:2634
+#: templates/js/translated/build.js:2622
#: templates/js/translated/sales_order.js:2013
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:2639 templates/js/translated/stock.js:1836
+#: templates/js/translated/build.js:2627 templates/js/translated/stock.js:1798
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:2643
+#: templates/js/translated/build.js:2631
#: templates/js/translated/sales_order.js:2007
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:2647
+#: templates/js/translated/build.js:2635
msgid "Remove stock allocation"
msgstr ""
@@ -10772,7 +10597,7 @@ msgid "Delete Parameters"
msgstr ""
#: templates/js/translated/company.js:1181
-#: templates/js/translated/company.js:1469 templates/js/translated/part.js:2239
+#: templates/js/translated/company.js:1469 templates/js/translated/part.js:2218
msgid "Order parts"
msgstr ""
@@ -10789,34 +10614,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:1269
-#: templates/js/translated/company.js:1557 templates/js/translated/part.js:795
-#: templates/js/translated/part.js:1207
+#: templates/js/translated/company.js:1557 templates/js/translated/part.js:779
+#: templates/js/translated/part.js:1191
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:1273
-#: templates/js/translated/company.js:1561 templates/js/translated/part.js:799
-#: templates/js/translated/part.js:1211
+#: templates/js/translated/company.js:1561 templates/js/translated/part.js:783
+#: templates/js/translated/part.js:1195
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:1393 templates/js/translated/part.js:1461
+#: templates/js/translated/company.js:1393 templates/js/translated/part.js:1445
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:1428 templates/js/translated/part.js:1524
+#: templates/js/translated/company.js:1428 templates/js/translated/part.js:1508
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:1429 templates/js/translated/part.js:1525
+#: templates/js/translated/company.js:1429 templates/js/translated/part.js:1509
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:1446 templates/js/translated/part.js:1430
+#: templates/js/translated/company.js:1446 templates/js/translated/part.js:1414
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:1455 templates/js/translated/part.js:1546
+#: templates/js/translated/company.js:1455 templates/js/translated/part.js:1530
msgid "Delete Parameter"
msgstr ""
@@ -10912,61 +10737,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:371 templates/js/translated/forms.js:386
-#: templates/js/translated/forms.js:400 templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:373
+#: templates/js/translated/forms.js:371
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:388
+#: templates/js/translated/forms.js:386
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:402
+#: templates/js/translated/forms.js:400
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:416
+#: templates/js/translated/forms.js:414
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:754
+#: templates/js/translated/forms.js:752
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:855
+#: templates/js/translated/forms.js:853
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1403 templates/modals.html:19
+#: templates/js/translated/forms.js:1401 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1857
+#: templates/js/translated/forms.js:1855
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:2161 templates/js/translated/search.js:239
+#: templates/js/translated/forms.js:2071 templates/js/translated/search.js:239
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2375
+#: templates/js/translated/forms.js:2285
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2832
+#: templates/js/translated/forms.js:2742
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2832
+#: templates/js/translated/forms.js:2742
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2844
+#: templates/js/translated/forms.js:2754
msgid "Select Columns"
msgstr ""
@@ -11026,62 +10851,62 @@ msgstr ""
msgid "Labels sent to printer"
msgstr ""
-#: templates/js/translated/modals.js:58 templates/js/translated/modals.js:158
-#: templates/js/translated/modals.js:683
+#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:152
+#: templates/js/translated/modals.js:677
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:63 templates/js/translated/modals.js:157
-#: templates/js/translated/modals.js:751 templates/js/translated/modals.js:1059
+#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:151
+#: templates/js/translated/modals.js:745 templates/js/translated/modals.js:1053
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:156
+#: templates/js/translated/modals.js:150
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:445
+#: templates/js/translated/modals.js:439
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:596
+#: templates/js/translated/modals.js:590
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:682
+#: templates/js/translated/modals.js:676
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:740
+#: templates/js/translated/modals.js:734
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:1011
+#: templates/js/translated/modals.js:1005
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:1011
+#: templates/js/translated/modals.js:1005
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:1023
+#: templates/js/translated/modals.js:1017
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1120
+#: templates/js/translated/modals.js:1114
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1135
+#: templates/js/translated/modals.js:1129
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1136
+#: templates/js/translated/modals.js:1130
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1159
+#: templates/js/translated/modals.js:1153
msgid "Error requesting form data"
msgstr ""
@@ -11091,7 +10916,7 @@ msgstr ""
#: templates/js/translated/news.js:38
#: templates/js/translated/notification.js:46
-#: templates/js/translated/part.js:1601
+#: templates/js/translated/part.js:1585
msgid "ID"
msgstr ""
@@ -11140,7 +10965,7 @@ msgid "Delete Line"
msgstr ""
#: templates/js/translated/order.js:281
-#: templates/js/translated/purchase_order.js:1969
+#: templates/js/translated/purchase_order.js:1965
msgid "No line items found"
msgstr ""
@@ -11172,339 +10997,339 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:305
+#: templates/js/translated/part.js:297
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:329 templates/js/translated/stock.js:175
+#: templates/js/translated/part.js:313 templates/js/translated/stock.js:146
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:349
+#: templates/js/translated/part.js:333
msgid "Create Part Category"
msgstr ""
-#: templates/js/translated/part.js:352
+#: templates/js/translated/part.js:336
msgid "Create new category after this one"
msgstr ""
-#: templates/js/translated/part.js:353
+#: templates/js/translated/part.js:337
msgid "Part category created"
msgstr ""
-#: templates/js/translated/part.js:367
+#: templates/js/translated/part.js:351
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:380
+#: templates/js/translated/part.js:364
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:385
+#: templates/js/translated/part.js:369
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:378
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:398
+#: templates/js/translated/part.js:382
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:403
+#: templates/js/translated/part.js:387
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:427
+#: templates/js/translated/part.js:411
msgid "Create Part"
msgstr ""
-#: templates/js/translated/part.js:429
+#: templates/js/translated/part.js:413
msgid "Create another part after this one"
msgstr ""
-#: templates/js/translated/part.js:430
+#: templates/js/translated/part.js:414
msgid "Part created successfully"
msgstr ""
-#: templates/js/translated/part.js:458
+#: templates/js/translated/part.js:442
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:444
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:471
+#: templates/js/translated/part.js:455
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:512
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:513
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:527
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:545
+#: templates/js/translated/part.js:529
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:546
+#: templates/js/translated/part.js:530
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:531
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:538
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:590
+#: templates/js/translated/part.js:574
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:592
+#: templates/js/translated/part.js:576
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:597
+#: templates/js/translated/part.js:581
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:599
+#: templates/js/translated/part.js:583
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:616
+#: templates/js/translated/part.js:600
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:626
+#: templates/js/translated/part.js:610
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:629
+#: templates/js/translated/part.js:613
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:654
+#: templates/js/translated/part.js:638
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:682
-#: templates/js/translated/table_filters.js:743
+#: templates/js/translated/part.js:666
+#: templates/js/translated/table_filters.js:707
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:685
+#: templates/js/translated/part.js:669
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:745
+#: templates/js/translated/part.js:729
msgid "Demand"
msgstr ""
-#: templates/js/translated/part.js:768
+#: templates/js/translated/part.js:752
msgid "Unit"
msgstr ""
-#: templates/js/translated/part.js:791 templates/js/translated/part.js:1203
+#: templates/js/translated/part.js:775 templates/js/translated/part.js:1187
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:803
+#: templates/js/translated/part.js:787
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:807
+#: templates/js/translated/part.js:791
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:886
+#: templates/js/translated/part.js:870
msgid "Schedule generation of a new stocktake report."
msgstr ""
-#: templates/js/translated/part.js:886
+#: templates/js/translated/part.js:870
msgid "Once complete, the stocktake report will be available for download."
msgstr ""
-#: templates/js/translated/part.js:894
+#: templates/js/translated/part.js:878
msgid "Generate Stocktake Report"
msgstr ""
-#: templates/js/translated/part.js:898
+#: templates/js/translated/part.js:882
msgid "Stocktake report scheduled"
msgstr ""
-#: templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1031
msgid "No stocktake information available"
msgstr ""
-#: templates/js/translated/part.js:1105 templates/js/translated/part.js:1141
+#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1125
msgid "Edit Stocktake Entry"
msgstr ""
-#: templates/js/translated/part.js:1109 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:1093 templates/js/translated/part.js:1135
msgid "Delete Stocktake Entry"
msgstr ""
-#: templates/js/translated/part.js:1278
+#: templates/js/translated/part.js:1262
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1596
+#: templates/js/translated/part.js:1580
msgid "No part parameter templates found"
msgstr ""
-#: templates/js/translated/part.js:1659
+#: templates/js/translated/part.js:1643
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/js/translated/part.js:1671
+#: templates/js/translated/part.js:1655
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1663
msgid "Delete Part Parameter Template"
msgstr ""
-#: templates/js/translated/part.js:1713
-#: templates/js/translated/purchase_order.js:1637
+#: templates/js/translated/part.js:1697
+#: templates/js/translated/purchase_order.js:1633
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/part.js:1856
-#: templates/js/translated/purchase_order.js:2132
-#: templates/js/translated/return_order.js:753
+#: templates/js/translated/part.js:1840
+#: templates/js/translated/purchase_order.js:2128
+#: templates/js/translated/return_order.js:749
#: templates/js/translated/sales_order.js:1872
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/part.js:1901
-#: templates/js/translated/purchase_order.js:2199
+#: templates/js/translated/part.js:1885
+#: templates/js/translated/purchase_order.js:2195
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/part.js:1964
+#: templates/js/translated/part.js:1948
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1986
+#: templates/js/translated/part.js:1970
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:2074 templates/js/translated/part.js:2501
+#: templates/js/translated/part.js:2058 templates/js/translated/part.js:2480
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:2195
+#: templates/js/translated/part.js:2179
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:2200
+#: templates/js/translated/part.js:2184
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:2230
+#: templates/js/translated/part.js:2209
msgid "Set category"
msgstr ""
-#: templates/js/translated/part.js:2283
+#: templates/js/translated/part.js:2262
msgid "parts"
msgstr ""
-#: templates/js/translated/part.js:2379
+#: templates/js/translated/part.js:2358
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:2526 templates/js/translated/part.js:2656
-#: templates/js/translated/stock.js:2640
+#: templates/js/translated/part.js:2505 templates/js/translated/part.js:2635
+#: templates/js/translated/stock.js:2602
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:2542
+#: templates/js/translated/part.js:2521
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:2640
+#: templates/js/translated/part.js:2619
msgid "No subcategories found"
msgstr ""
-#: templates/js/translated/part.js:2676 templates/js/translated/stock.js:2660
+#: templates/js/translated/part.js:2655 templates/js/translated/stock.js:2622
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2756
+#: templates/js/translated/part.js:2735
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2772
+#: templates/js/translated/part.js:2751
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2849
+#: templates/js/translated/part.js:2828
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2900 templates/js/translated/stock.js:1436
+#: templates/js/translated/part.js:2879 templates/js/translated/stock.js:1398
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2901 templates/js/translated/stock.js:1437
-#: templates/js/translated/stock.js:1699
+#: templates/js/translated/part.js:2880 templates/js/translated/stock.js:1399
+#: templates/js/translated/stock.js:1661
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2905
+#: templates/js/translated/part.js:2884
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2921
+#: templates/js/translated/part.js:2900
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2935
+#: templates/js/translated/part.js:2914
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:3014 templates/js/translated/part.js:3015
+#: templates/js/translated/part.js:2993 templates/js/translated/part.js:2994
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:3017
+#: templates/js/translated/part.js:2996
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:3023
+#: templates/js/translated/part.js:3002
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:3073
+#: templates/js/translated/part.js:3052
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:3079
+#: templates/js/translated/part.js:3058
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:3175
+#: templates/js/translated/part.js:3154
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:3191
+#: templates/js/translated/part.js:3170
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:3236
+#: templates/js/translated/part.js:3215
msgid "Minimum Stock Level"
msgstr ""
@@ -11512,47 +11337,51 @@ msgstr ""
msgid "No plugins found"
msgstr ""
-#: templates/js/translated/plugin.js:57
-msgid "This plugin is no longer installed"
-msgstr ""
-
-#: templates/js/translated/plugin.js:59
+#: templates/js/translated/plugin.js:54
msgid "This plugin is active"
msgstr ""
-#: templates/js/translated/plugin.js:61
-msgid "This plugin is installed but not active"
+#: templates/js/translated/plugin.js:56
+msgid "This plugin is not active"
msgstr ""
-#: templates/js/translated/plugin.js:116 templates/js/translated/plugin.js:185
+#: templates/js/translated/plugin.js:62
+msgid "Plugin Description"
+msgstr ""
+
+#: templates/js/translated/plugin.js:81
+msgid "Sample"
+msgstr ""
+
+#: templates/js/translated/plugin.js:117 templates/js/translated/plugin.js:183
msgid "Disable Plugin"
msgstr ""
-#: templates/js/translated/plugin.js:118 templates/js/translated/plugin.js:185
+#: templates/js/translated/plugin.js:119 templates/js/translated/plugin.js:183
msgid "Enable Plugin"
msgstr ""
-#: templates/js/translated/plugin.js:157
+#: templates/js/translated/plugin.js:158
msgid "The Plugin was installed"
msgstr ""
-#: templates/js/translated/plugin.js:176
+#: templates/js/translated/plugin.js:174
msgid "Are you sure you want to enable this plugin?"
msgstr ""
-#: templates/js/translated/plugin.js:180
+#: templates/js/translated/plugin.js:178
msgid "Are you sure you want to disable this plugin?"
msgstr ""
-#: templates/js/translated/plugin.js:188
+#: templates/js/translated/plugin.js:186
msgid "Enable"
msgstr ""
-#: templates/js/translated/plugin.js:188
+#: templates/js/translated/plugin.js:186
msgid "Disable"
msgstr ""
-#: templates/js/translated/plugin.js:202
+#: templates/js/translated/plugin.js:200
msgid "Plugin updated"
msgstr ""
@@ -11749,80 +11578,80 @@ msgstr ""
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/purchase_order.js:1318
-#: templates/js/translated/return_order.js:558
+#: templates/js/translated/purchase_order.js:1314
+#: templates/js/translated/return_order.js:554
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1319
+#: templates/js/translated/purchase_order.js:1315
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1387
+#: templates/js/translated/purchase_order.js:1383
msgid "Scan Item Barcode"
msgstr ""
-#: templates/js/translated/purchase_order.js:1388
+#: templates/js/translated/purchase_order.js:1384
msgid "Scan barcode on incoming item (must not match any existing stock items)"
msgstr ""
-#: templates/js/translated/purchase_order.js:1402
+#: templates/js/translated/purchase_order.js:1398
msgid "Invalid barcode data"
msgstr ""
-#: templates/js/translated/purchase_order.js:1664
+#: templates/js/translated/purchase_order.js:1660
#: templates/js/translated/return_order.js:283
#: templates/js/translated/sales_order.js:771
#: templates/js/translated/sales_order.js:995
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/purchase_order.js:1726
+#: templates/js/translated/purchase_order.js:1722
#: templates/js/translated/return_order.js:351
#: templates/js/translated/sales_order.js:848
#: templates/js/translated/sales_order.js:1008
msgid "Items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1822
+#: templates/js/translated/purchase_order.js:1818
msgid "All selected Line items will be deleted"
msgstr ""
-#: templates/js/translated/purchase_order.js:1840
+#: templates/js/translated/purchase_order.js:1836
msgid "Delete selected Line items?"
msgstr ""
-#: templates/js/translated/purchase_order.js:1895
+#: templates/js/translated/purchase_order.js:1891
#: templates/js/translated/sales_order.js:2067
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:1910
+#: templates/js/translated/purchase_order.js:1906
#: templates/js/translated/return_order.js:473
-#: templates/js/translated/return_order.js:666
+#: templates/js/translated/return_order.js:662
#: templates/js/translated/sales_order.js:2080
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:1921
-#: templates/js/translated/return_order.js:679
+#: templates/js/translated/purchase_order.js:1917
+#: templates/js/translated/return_order.js:675
#: templates/js/translated/sales_order.js:2091
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2203
+#: templates/js/translated/purchase_order.js:2199
#: templates/js/translated/sales_order.js:2021
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2204
-#: templates/js/translated/return_order.js:798
+#: templates/js/translated/purchase_order.js:2200
+#: templates/js/translated/return_order.js:794
#: templates/js/translated/sales_order.js:2022
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2205
-#: templates/js/translated/return_order.js:802
+#: templates/js/translated/purchase_order.js:2201
+#: templates/js/translated/return_order.js:798
#: templates/js/translated/sales_order.js:2028
msgid "Delete line item"
msgstr ""
@@ -11885,16 +11714,16 @@ msgstr ""
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/return_order.js:559
+#: templates/js/translated/return_order.js:555
msgid "Receive Return Order Items"
msgstr ""
-#: templates/js/translated/return_order.js:690
+#: templates/js/translated/return_order.js:686
#: templates/js/translated/sales_order.js:2227
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/return_order.js:795
+#: templates/js/translated/return_order.js:791
msgid "Mark item as received"
msgstr ""
@@ -12037,7 +11866,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:1620
#: templates/js/translated/sales_order.js:1707
-#: templates/js/translated/stock.js:1744
+#: templates/js/translated/stock.js:1706
msgid "Shipped to customer"
msgstr ""
@@ -12099,472 +11928,464 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:98
+#: templates/js/translated/stock.js:97
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:129
+#: templates/js/translated/stock.js:128
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:139
-msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on"
-msgstr ""
-
-#: templates/js/translated/stock.js:152
+#: templates/js/translated/stock.js:137
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:166
-msgid "Add Location type"
-msgstr ""
-
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:172
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:217
+#: templates/js/translated/stock.js:187
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:219
+#: templates/js/translated/stock.js:189
msgid "Create another location after this one"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:190
msgid "Stock location created"
msgstr ""
-#: templates/js/translated/stock.js:234
+#: templates/js/translated/stock.js:204
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:241
+#: templates/js/translated/stock.js:211
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:250
+#: templates/js/translated/stock.js:220
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:254
+#: templates/js/translated/stock.js:224
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:259
+#: templates/js/translated/stock.js:229
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:313
+#: templates/js/translated/stock.js:283
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:349
+#: templates/js/translated/stock.js:319
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: templates/js/translated/stock.js:362
+#: templates/js/translated/stock.js:328
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:334
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:439
+#: templates/js/translated/stock.js:405
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:459
+#: templates/js/translated/stock.js:425
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:475
+#: templates/js/translated/stock.js:441
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:480
+#: templates/js/translated/stock.js:446
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:501
+#: templates/js/translated/stock.js:467
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:543
+#: templates/js/translated/stock.js:509
msgid "Create another item after this one"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:521
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:534
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:593
+#: templates/js/translated/stock.js:559
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:564
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:614
+#: templates/js/translated/stock.js:580
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:634
+#: templates/js/translated/stock.js:600
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:643
+#: templates/js/translated/stock.js:609
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:751
+#: templates/js/translated/stock.js:717
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:752
+#: templates/js/translated/stock.js:718
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:829
+#: templates/js/translated/stock.js:795
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:830
+#: templates/js/translated/stock.js:796
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:832
+#: templates/js/translated/stock.js:798
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:833
+#: templates/js/translated/stock.js:799
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:928
+#: templates/js/translated/stock.js:890
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:929
+#: templates/js/translated/stock.js:891
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1024
+#: templates/js/translated/stock.js:986
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:1025
+#: templates/js/translated/stock.js:987
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:1031
+#: templates/js/translated/stock.js:993
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:1032
+#: templates/js/translated/stock.js:994
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:1036
+#: templates/js/translated/stock.js:998
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:1037
+#: templates/js/translated/stock.js:999
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:1041
+#: templates/js/translated/stock.js:1003
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:1042 users/models.py:253
+#: templates/js/translated/stock.js:1004 users/models.py:252
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1008
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1105
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1105
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3258
+#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:3205
msgid "Select Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1178
+#: templates/js/translated/stock.js:1140
msgid "Select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1224
+#: templates/js/translated/stock.js:1186
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1322
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1362
+#: templates/js/translated/stock.js:1324
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1367
+#: templates/js/translated/stock.js:1329
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1429
+#: templates/js/translated/stock.js:1391
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1394
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/stock.js:1418
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:1482
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1682
+#: templates/js/translated/stock.js:1644
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1704
+#: templates/js/translated/stock.js:1666
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1736
+#: templates/js/translated/stock.js:1698
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1740
+#: templates/js/translated/stock.js:1702
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1748
+#: templates/js/translated/stock.js:1710
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1754
+#: templates/js/translated/stock.js:1716
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1772
msgid "Change stock status"
msgstr ""
-#: templates/js/translated/stock.js:1819
+#: templates/js/translated/stock.js:1781
msgid "Merge stock"
msgstr ""
-#: templates/js/translated/stock.js:1868
+#: templates/js/translated/stock.js:1830
msgid "Delete stock"
msgstr ""
-#: templates/js/translated/stock.js:1923
+#: templates/js/translated/stock.js:1885
msgid "stock items"
msgstr ""
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1890
msgid "Scan to location"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1901
msgid "Stock Actions"
msgstr ""
-#: templates/js/translated/stock.js:1983
+#: templates/js/translated/stock.js:1945
msgid "Load installed items"
msgstr ""
-#: templates/js/translated/stock.js:2061
+#: templates/js/translated/stock.js:2023
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:2066
+#: templates/js/translated/stock.js:2028
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:2069
+#: templates/js/translated/stock.js:2031
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2034
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:2074
+#: templates/js/translated/stock.js:2036
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:2076
+#: templates/js/translated/stock.js:2038
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2041
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2081
+#: templates/js/translated/stock.js:2043
msgid "Stock item has been consumed by a build order"
msgstr ""
-#: templates/js/translated/stock.js:2085
+#: templates/js/translated/stock.js:2047
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:2087
+#: templates/js/translated/stock.js:2049
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:2092
+#: templates/js/translated/stock.js:2054
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2056
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:2096
+#: templates/js/translated/stock.js:2058
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:2100
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/stock.js:2062
+#: templates/js/translated/table_filters.js:326
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:2265
+#: templates/js/translated/stock.js:2227
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2312
+#: templates/js/translated/stock.js:2274
msgid "Stock Value"
msgstr ""
-#: templates/js/translated/stock.js:2440
+#: templates/js/translated/stock.js:2402
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2544
+#: templates/js/translated/stock.js:2506
msgid "stock locations"
msgstr ""
-#: templates/js/translated/stock.js:2699
+#: templates/js/translated/stock.js:2661
msgid "Load Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2768
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2772
msgid "No changes"
msgstr ""
-#: templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:2784
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2855
+#: templates/js/translated/stock.js:2806
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2823
msgid "Build order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2838
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2904
+#: templates/js/translated/stock.js:2855
msgid "Sales Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2921
+#: templates/js/translated/stock.js:2872
msgid "Return Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2940
+#: templates/js/translated/stock.js:2891
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2958
+#: templates/js/translated/stock.js:2909
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2976
+#: templates/js/translated/stock.js:2927
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2984
+#: templates/js/translated/stock.js:2935
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:3056
+#: templates/js/translated/stock.js:3007
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:3106 templates/js/translated/stock.js:3141
+#: templates/js/translated/stock.js:3057 templates/js/translated/stock.js:3092
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3163
+#: templates/js/translated/stock.js:3110
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:3184
+#: templates/js/translated/stock.js:3131
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:3185
+#: templates/js/translated/stock.js:3132
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:3187
+#: templates/js/translated/stock.js:3134
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3188
+#: templates/js/translated/stock.js:3135
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:3189
+#: templates/js/translated/stock.js:3136
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:3190
+#: templates/js/translated/stock.js:3137
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:3203
+#: templates/js/translated/stock.js:3150
msgid "Select part to install"
msgstr ""
-#: templates/js/translated/stock.js:3259
+#: templates/js/translated/stock.js:3206
msgid "Select one or more stock items"
msgstr ""
-#: templates/js/translated/stock.js:3272
+#: templates/js/translated/stock.js:3219
msgid "Selected stock items"
msgstr ""
-#: templates/js/translated/stock.js:3276
+#: templates/js/translated/stock.js:3223
msgid "Change Stock Status"
msgstr ""
@@ -12573,23 +12394,23 @@ msgid "Has project code"
msgstr ""
#: templates/js/translated/table_filters.js:89
-#: templates/js/translated/table_filters.js:601
-#: templates/js/translated/table_filters.js:613
-#: templates/js/translated/table_filters.js:654
+#: templates/js/translated/table_filters.js:565
+#: templates/js/translated/table_filters.js:577
+#: templates/js/translated/table_filters.js:618
msgid "Order status"
msgstr ""
#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:618
-#: templates/js/translated/table_filters.js:644
-#: templates/js/translated/table_filters.js:659
+#: templates/js/translated/table_filters.js:582
+#: templates/js/translated/table_filters.js:608
+#: templates/js/translated/table_filters.js:623
msgid "Outstanding"
msgstr ""
#: templates/js/translated/table_filters.js:102
-#: templates/js/translated/table_filters.js:524
-#: templates/js/translated/table_filters.js:626
-#: templates/js/translated/table_filters.js:667
+#: templates/js/translated/table_filters.js:488
+#: templates/js/translated/table_filters.js:590
+#: templates/js/translated/table_filters.js:631
msgid "Assigned to me"
msgstr ""
@@ -12610,12 +12431,12 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:775
+#: templates/js/translated/table_filters.js:739
msgid "Has Pricing"
msgstr ""
#: templates/js/translated/table_filters.js:234
-#: templates/js/translated/table_filters.js:345
+#: templates/js/translated/table_filters.js:321
msgid "Include sublocations"
msgstr ""
@@ -12623,210 +12444,210 @@ msgstr ""
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:267
-msgid "Has location type"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:278
-#: templates/js/translated/table_filters.js:279
-#: templates/js/translated/table_filters.js:707
+#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:255
+#: templates/js/translated/table_filters.js:671
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:755
+#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:719
msgid "Subscribed"
msgstr ""
-#: templates/js/translated/table_filters.js:298
-#: templates/js/translated/table_filters.js:380
+#: templates/js/translated/table_filters.js:274
+#: templates/js/translated/table_filters.js:356
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:301
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:277
+#: templates/js/translated/table_filters.js:363
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:302
-#: templates/js/translated/table_filters.js:388
+#: templates/js/translated/table_filters.js:278
+#: templates/js/translated/table_filters.js:364
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:305
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:281
+#: templates/js/translated/table_filters.js:367
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:306
-#: templates/js/translated/table_filters.js:392
+#: templates/js/translated/table_filters.js:282
+#: templates/js/translated/table_filters.js:368
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:309
-#: templates/js/translated/table_filters.js:310
-#: templates/js/translated/table_filters.js:383
-#: templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:286
+#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:360
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:314
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:381
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:325
-#: templates/js/translated/table_filters.js:696
+#: templates/js/translated/table_filters.js:301
+#: templates/js/translated/table_filters.js:660
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:302
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:307
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:311
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:312
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:317
msgid "Stock is available for use"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:322
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:351
+#: templates/js/translated/table_filters.js:327
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:356
+#: templates/js/translated/table_filters.js:332
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:360
+#: templates/js/translated/table_filters.js:336
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:361
+#: templates/js/translated/table_filters.js:337
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:365
+#: templates/js/translated/table_filters.js:341
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:366
+#: templates/js/translated/table_filters.js:342
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:346
+msgid "Installed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:347
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:376
+#: templates/js/translated/table_filters.js:352
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:396
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:372
+#: templates/js/translated/table_filters.js:373
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:400
+#: templates/js/translated/table_filters.js:376
msgid "Has batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:409
+#: templates/js/translated/table_filters.js:385
msgid "Stock item is tracked by either batch code or serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:414
+#: templates/js/translated/table_filters.js:390
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:415
+#: templates/js/translated/table_filters.js:391
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:419
+#: templates/js/translated/table_filters.js:395
msgid "Expiry Date before"
msgstr ""
-#: templates/js/translated/table_filters.js:423
+#: templates/js/translated/table_filters.js:399
msgid "Expiry Date after"
msgstr ""
-#: templates/js/translated/table_filters.js:436
+#: templates/js/translated/table_filters.js:412
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:442
+#: templates/js/translated/table_filters.js:418
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:456
+#: templates/js/translated/table_filters.js:432
msgid "Test Passed"
msgstr ""
-#: templates/js/translated/table_filters.js:460
+#: templates/js/translated/table_filters.js:436
msgid "Include Installed Items"
msgstr ""
-#: templates/js/translated/table_filters.js:511
+#: templates/js/translated/table_filters.js:475
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:708
+#: templates/js/translated/table_filters.js:672
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:713
+#: templates/js/translated/table_filters.js:677
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:721
+#: templates/js/translated/table_filters.js:685
msgid "Available stock"
msgstr ""
-#: templates/js/translated/table_filters.js:729
-#: templates/js/translated/table_filters.js:825
+#: templates/js/translated/table_filters.js:693
+#: templates/js/translated/table_filters.js:789
msgid "Has Units"
msgstr ""
-#: templates/js/translated/table_filters.js:730
+#: templates/js/translated/table_filters.js:694
msgid "Part has defined units"
msgstr ""
-#: templates/js/translated/table_filters.js:734
+#: templates/js/translated/table_filters.js:698
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:735
+#: templates/js/translated/table_filters.js:699
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:739
+#: templates/js/translated/table_filters.js:703
msgid "In stock"
msgstr ""
-#: templates/js/translated/table_filters.js:747
+#: templates/js/translated/table_filters.js:711
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/table_filters.js:759
+#: templates/js/translated/table_filters.js:723
msgid "Has stocktake entries"
msgstr ""
-#: templates/js/translated/table_filters.js:821
+#: templates/js/translated/table_filters.js:785
msgid "Has Choices"
msgstr ""
@@ -13117,34 +12938,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:240
+#: users/models.py:239
msgid "Permission set"
msgstr ""
-#: users/models.py:248
+#: users/models.py:247
msgid "Group"
msgstr ""
-#: users/models.py:251
+#: users/models.py:250
msgid "View"
msgstr ""
-#: users/models.py:251
+#: users/models.py:250
msgid "Permission to view items"
msgstr ""
-#: users/models.py:253
+#: users/models.py:252
msgid "Permission to add items"
msgstr ""
-#: users/models.py:255
+#: users/models.py:254
msgid "Change"
msgstr ""
-#: users/models.py:255
+#: users/models.py:254
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:257
+#: users/models.py:256
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index b57efd4a85..7c89a49116 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:02\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "Конечная точка API не обнаружена"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "У пользователя недостаточно прав для просмотра этой модели!"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Не указано название"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Невозможно преобразовать {original} в {unit}"
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr "Недопустимое количество"
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Подробности об ошибке можно найти в панели администратора"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Введите дату"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Введите дату"
msgid "Notes"
msgstr "Заметки"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Значение '{name}' отсутствует в формате шаблона"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Предоставленное значение не соответствует требуемому формату: "
@@ -103,99 +98,99 @@ msgstr "Подтвердите новый пароль"
msgid "Old password"
msgstr "Старый пароль"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Email (еще раз)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Подтверждение адреса электронной почты"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Вы должны вводить один и тот же адрес электронной почты."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Указанный основной адрес электронной почты неверен."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Указанный домен электронной почты не утверждён."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "Регистрация отключена."
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Пустая строка серийного номера"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Повторяющийся серийный номер"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Некорректный идентификатор группы {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Диапазон групп {g} превышает допустимое количество ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Неверная последовательность групп: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Серийных номеров не найдено"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Удалить HTML теги из этого значения"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Ошибка соединения"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Сервер ответил неверным кодом статуса"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Произошло исключение"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Сервер ответил неверным значением Контент-Длина"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Изображение слишком большое"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Загрузка изображения превышен максимальный размер"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Удаленный сервер вернул пустой ответ"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Предоставленный URL не является допустимым файлом изображения"
@@ -211,64 +206,64 @@ msgstr "[{site.name}] Войти в приложение"
msgid "Email"
msgstr "EMail"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "Метаданные должны быть объектом python dict"
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "Метаданные плагина"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "Поле метаданных JSON для использования внешними плагинами"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Неправильно отформатированный шаблон"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Указан неизвестный ключ формата"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Отсутствует требуемый ключ формата"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Ссылочный идентификатор не может быть пустым"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Ссылка должна соответствовать шаблону {pattern}"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Номер ссылки слишком большой"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Файл не найден"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Отсутствует внешняя ссылка"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Вложения"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Выберите файл для вложения"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Выберите файл для вложения"
msgid "Link"
msgstr "Ссылка"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Комментарий"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Пользователь"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "дата загрузки"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Имя файла не должно быть пустым"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Неверная директория вложений"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Имя файла содержит запрещенные символы '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Отсутствует расширение для имени файла"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Вложение с таким именем файла уже существует"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Ошибка переименования файла"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Повторяющиеся имена не могут существовать под одним и тем же родителем"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Неверный выбор"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Неверный выбор"
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Название"
msgid "Description"
msgstr "Описание"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Описание (необязательно)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "родитель"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Путь"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Описание обновления (необязательное)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Данные штрих-кода"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Данные стороннего штрих-кода"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Хэш штрих-кода"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Уникальный хэш данных штрих-кода"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Обнаружен существующий штрих-код"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Ошибка сервера"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Сервер зарегистрировал ошибку."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Должно быть действительным номером"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Валюта"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Выберите валюту из доступных вариантов"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Имя файла"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Неверное значение"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Файл данных"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Выберите файл данных для загрузки"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Неподдерживаемый тип файла"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Файл слишком большой"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Столбцы в файле не найдены"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Строки данных в файле не найдены"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Строки данных в файле не найдены"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Столбцы данных не предоставлены"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Отсутствует обязательный столбец: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Повторяющийся столбец: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "Ссылка"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "ССЫЛКА файла изображения на удаленном сервере"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Загрузка изображений с удаленного URL-адреса не включена"
@@ -639,7 +634,7 @@ msgstr "Китайский (Упрощенный)"
msgid "Chinese (Traditional)"
msgstr "Китайский (Традиционный)"
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Проверка фонового работника не удалась"
@@ -688,7 +683,7 @@ msgstr "Возвращено"
msgid "In Progress"
msgstr "Выполняется"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Возврат"
msgid "Reject"
msgstr "Отклонить"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr "Неверная физическая единица"
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Неверный код валюты"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Значение перегрузки не должно быть отрицательным"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Перегрузка не может превысить 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Неверное значение для возврата средств"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Редактировать информацию о пользователе"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Установить пароль"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Пароли должны совпадать"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Указан неверный пароль"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Информация о системе"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "О программе InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Сборка должна быть отменена перед удалением"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "Расходники"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "Расходники"
msgid "Optional"
msgstr "Необязательно"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr "Отслеживается"
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Выделено"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Неверный выбор для родительской сборки
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "ПорядокСборки, которому выделяется эта сборка"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "ПорядокСборки, которому выделяется эта
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Отсылка на заказ"
msgid "SalesOrder to which this build is allocated"
msgstr "ЗаказПродаж, которому выделена эта сборка"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Статус сборки"
msgid "Build status code"
msgstr "Код статуса сборки"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Код партии"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Код партии для этого вывода сборки"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Целевая дата завершения"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Дата завершения"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Пользователь, выпустивший этот заказ на сборку"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "Пользователь, ответственный за сборку
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "Приоритет сборки"
msgid "Priority of this build order"
msgstr "Приоритет этого порядка сборки заказа"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "Код проекта"
msgid "Project code for this build order"
msgstr "Код проекта для этого заказа сборки"
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Заказ на сборку {build} был завершен"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Заказ на сборку был завершен"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Вывод сборки не указан"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Вывод сборки уже завершен"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Вывод сборки не совпадает с порядком сборки"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "Количество должно быть больше нуля"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr "Количество не может быть больше выходного количества"
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr "Построить объект"
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr "Построить объект"
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr "Построить объект"
msgid "Quantity"
msgstr "Количество"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr "Требуемое количество для заказа сборки"
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Элемент сборки должен указать вывод сборки, так как основная часть помечена как отслеживаемая"
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Выделенное количество ({q}) не должно превышать доступное количество на складе ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Предмет на складе перераспределен"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Выделенное количество должно быть больше нуля"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Количество должно быть 1 для сериализованных запасов"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr "Выбранный товар на складе не соответствует строке BOM"
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr "Выбранный товар на складе не соответст
msgid "Stock Item"
msgstr "Предметы на складе"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Исходный складской предмет"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Количество на складе для построения"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Установить в"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Целевой товар на складе"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Вывод результата сборки"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "Результат сборки не совпадает с родительской сборкой"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "Выходная часть не соответствует части BuildOrder"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Результат этой сборки уже помечен как завершенный"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "Этот вывод сборки не полностью выделен"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "Требуется целое количество, так как материал содержит отслеживаемые детали"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Серийные номера"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Введите серийные номера для результатов сборки"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "Автоматически выделить серийные номера"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Автоматически выделять необходимые элементы с соответствующими серийными номерами"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "Следующие серийные номера уже существуют или недействительны"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "Необходимо представить список результатов сборки"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "Необходимо представить список результ
msgid "Location"
msgstr "Расположение"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr "Расположение на складе для обрытых результатов"
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr "Отклонить распределения"
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr "Отменить любые распределения запасов для отбракованных выходов"
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr "Причина ломания вывода(ов) сборки"
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "Расположение для завершенных выходов сборки"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr "Расположение для завершенных выходов с
msgid "Status"
msgstr "Статус"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "Принять неполное распределение"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr "Выходы, если запасы не были полностью распределены"
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr "Удалить выделенный запас"
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr "Вычесть запасы, которые уже были выделены для этой сборки"
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "Удалить неполные выходные данные"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr "Удалить все результаты сборки, которые не были завершены"
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr "Нет разрешения"
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr "Принять как потребляемые этим порядком сборки"
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr "Распределить до завершения заказа на сборку"
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr "Перераспределенные запасы"
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "Как вы хотите обработать дополнительные товары, назначенные для заказа на сборку"
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr "Некоторые товары на складе перераспределены"
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "Принять снято"
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Подтвердите, что товары на складе не были полностью выделены для этого заказа на сборку"
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "Необходимые запасы не были выделены полностью"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Принять незавершенные"
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Принять, что требуемое количество результатов сборки не было завершено"
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "Обязательное количество сборки не было завершено"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "Порядок сборки имеет незавершенные результаты"
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr "Строка сборки"
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "Вывод сборки"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "Вывод сборки должен указывать на ту же сборку"
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr "Сборка Линии Предмет"
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part должна указывать на ту же часть, что и порядок сборки"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "Компонент должен быть в наличии"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Превышено доступное количество ({q})"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "Вывод сборки должен быть определен для распределения отслеживаемых частей"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Вывод сборки не может быть указан для распределения неотслеживаемых частей"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "Этот запас уже был выделен для этого вывода сборки"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "Необходимо указать пункты распределения"
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "Расположение склада, где будут переданы части (оставьте пустым, чтобы забрать их из любого места)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "Исключить местоположение"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "Исключить товары на складе из этого выбранного места"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "Обменный остаток"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "Товары на складе в нескольких местах могут использоваться на взаимозаменяемой основе"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "Заменить запасы"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "Разрешить распределение замещающих частей"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr "Необязательные элементы"
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr "Выделить дополнительные BOM предметы для заказа"
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "Для заказа сборки необходим остаток"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr "Просроченный заказ сборки"
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr "Заказ на сборку {bo} просрочен"
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr "Складской источник"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Назначение"
@@ -2014,1372 +2013,1372 @@ msgstr "Обновлено"
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Требуется перезапуск"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr "Название инстанса"
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Название компании"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Внутреннее название компании"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "Базовая ссылка"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "Базовая ссылка для экземпляра сервера"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Валюта по умолчанию"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "дней"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Скачать по ссылке"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Разрешить загрузку удаленных изображений и файлов по внешнему URL"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr "Ограничение размера загрузки"
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr "Максимально допустимый размер загрузки для удалённого изображения"
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr "User-Agent, используемый для загрузки из URL"
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr "Позволяет переопределить user-Agent, используемый для загрузки изображений и файлов с внешнего URL (оставьте пустым по умолчанию)"
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Требуется подтверждение"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Требовать явное подтверждение пользователя для определенного действия."
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr "Глубина дерева"
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr "Глубина дерева по умолчанию для просмотра дерева. Глубокие уровни загружены по мере необходимости."
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr "Интервал проверки обновлений"
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr "Как часто проверять наличие обновлений (установите ноль чтобы выключить)"
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Автоматическое резервное копирование"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Включить автоматическое резервное копирование базы данных и медиа-файлов"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Интервал автосохранения"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr "Укажите количество дней между событиями автоматического резервного копирования"
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr "Интервал удаления задачи"
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr "Результаты фоновых задач будут удалены после указанного количества дней"
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr "Интервал удаления журнала ошибок"
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr "Журналы ошибок будут удалены после указанного количества дней"
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr "Интервал удаления уведомления"
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr "Уведомления пользователя будут удалены после указанного количества дней"
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Поддержка штрих-кодов"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr "Задержка сканирования штрих-кода"
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr "Время задержки обработки штрих-кода"
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr "Поддержка веб-камер штрих-кодов"
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr "Разрешить сканирование штрих-кода через веб-камеру в браузере"
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr "Ревизия деталей"
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Разрешить повторяющиеся IPN"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "Разрешить редактирование IPN"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Шаблон"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "По умолчанию детали являются шаблонами"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Сборка"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Компонент"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Можно купить"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "По умолчанию детали являются отслеживаемыми"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Можно продавать"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Отслеживание"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "По умолчанию детали являются отслеживаемыми"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Виртуальная"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Показывать связанные детали"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Исходные данные о поставщике"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr "Использовать расценки из ручного ввода данных о запасах для расчета цен"
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Режим отладки"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr "Включить возврат заказов"
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr "Редактировать завершенные заказы на покупку"
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Необходимо указать EMail"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr "Пользователи должны использовать многофакторную безопасность."
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr "Проверять плагины при запуске"
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr "Показывать детали, на которые включены уведомления"
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr "Показывать детали, на которые включены уведомления, на главной странице"
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr "Показывать категории, на которые включены уведомления"
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr "Показывать категории, на которые включены уведомления, на главной странице"
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Показывать последние детали"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Показывать последние детали на главной странице"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr "Показывать непроверенные BOMы"
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr "Показывать BOMы, ожидающие проверки, на главной странице"
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr "Показывать изменившиеся складские запасы"
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr "Показывать единицы хранения с недавно изменившимися складскими запасами на главной странице"
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Показывать низкие складские запасы"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Показывать единицы хранения с низкими складскими запасами на главной странице"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr "Показывать закончившиеся детали"
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr "Показывать закончившиеся на складе единицы хранения на главной странице"
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Показывать требуемые детали"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr "Показывать требуемые для сборки единицы хранения на главной странице"
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr "Показывать просрочку"
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr "Показывать единицы хранения с истёкшим сроком годности на главной странице"
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr "Показывать залежалые"
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr "Показывать залежалые единицы хранения на главной странице"
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr "Показывать незавершённые сборки"
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr "Показывать незавершённые сборки на главной странице"
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr "Показывать просроченные сборки"
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr "Показывать просроченные сборки на главной странице"
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr "Искать заказы на сборку"
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr "Отображать заказы на сборку в окне предварительного просмотра поиска"
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr "Поиск заказов на продажу"
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr "Поиск возвращенных заказов"
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Планирование деталей"
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Запасы деталей"
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Цена"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr "Активный"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr "Изображение"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr "Детали импортированы"
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Контактный EMail"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "Является ли компания производителем де
msgid "Default currency used for this company"
msgstr "Для этой компании используется валюта по умолчанию"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Компания"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr "Выберите компанию"
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Базовая деталь"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Выберите деталь"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr "Выберите деталь"
msgid "Manufacturer"
msgstr "Производитель"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Выберите производителя"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Выберите производителя"
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Код производителя"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr "Ссылка на сайт производителя"
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "Деталь производителя"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Наименование параметра"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Значение"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Значение параметра"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Ед.изм"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Единицы измерения"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr "Поставщик"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Выберите поставщика"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Выберите поставщика"
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr "Код поставщика"
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "Выберите производителя части"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr "Ссылка на сайт поставщика"
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Заметка"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "базовая стоимость"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr "Упаковка"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr "Скачать изображение по ссылке"
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Покупатель"
msgid "Uses default currency"
msgstr "Использовать валюту по умолчанию"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Производители"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr "Детали на складе"
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Новый поставщик"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Новый производитель"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Покупатели"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Новый покупатель"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Компании"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Новая компания"
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr "Высота [мм]"
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Фильтры"
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr "Общая стоимость"
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr "Заказ на закупку"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr "Заказ на закупку"
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr "Контакт не соответствует выбранной компании"
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr "Описание заказа (дополнительно)"
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr "Выберите код проекта для этого заказа"
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "Пользователь или группа, ответственная за этот заказ"
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr "Компания, в которой детали заказываются"
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr "Компания, которой детали продаются"
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr "Описание товара (необязательно)"
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr "Контекст"
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr "Дополнительный контекст для этой строки"
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Закупочная цена"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "Цена продажи"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr "Информация об отслеживании доставки"
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr "Укажите количество на складе"
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr "Выберите товар возврата от клиента"
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr "Курс покупки валюты"
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr "Выберите место назначения для полученных товаров"
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr "Введите код партии для поступающих единиц хранения"
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr "Введите серийные номера для входящих товаров на складе"
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество"
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr "Курс продажи валюты"
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr "Введите серийные номера для выделения"
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Действия"
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr "Артикул"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr "Наименование детали"
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr "Описание детали"
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr "Версия"
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Ключевые слова"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr "Код категории"
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr "Название категории"
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr "Разновидность"
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "Минимальный запас"
@@ -5496,8 +5493,8 @@ msgstr "Минимальный запас"
msgid "In Stock"
msgstr "На складе"
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr "Используется в"
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr "Путь к категории"
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr "Путь к категории"
msgid "Parts"
msgstr "Детали"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr "IPN"
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr "Необходимо выбрать эту опцию"
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Место хранения по умолчанию"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "Доступный запас"
@@ -5616,7 +5613,7 @@ msgstr "Доступный запас"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Категория детали"
@@ -5662,62 +5659,62 @@ msgstr "Иконка (необязательно)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN должен совпадать с регулярным выражением {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Наименование детали"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr "Шаблон"
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr "Эта деталь является шаблоном для других деталей?"
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr "Эта деталь является разновидностью другой детали?"
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr "Описание детали (необязательно)"
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr "Ключевые слова для улучшения видимости в результатах поиска"
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr "Ключевые слова для улучшения видимости
msgid "Category"
msgstr "Категория"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "Категория"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr "Внутренний код детали"
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr "Версия детали"
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr "Где обычно хранится эта деталь?"
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr "Срок действия по умолчанию"
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr "Срок годности (в днях) для товаров на складе этой позиции"
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr "Минимально допустимый складской запас"
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr "Единицы измерения этой детали"
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr "Может ли эта деталь быть создана из других деталей?"
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr "Может ли эта деталь использоваться для создания других деталей?"
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?"
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?"
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr "Может ли эта деталь быть продана покупателям?"
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr "Эта деталь актуальна?"
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Эта деталь виртуальная, как программный продукт или лицензия?"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr "Пользователь, ответственный за эту деталь"
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr "Тестовые шаблоны могут быть созданы только для отслеживаемых деталей"
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr "Название теста"
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr "Введите имя для теста"
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr "Введите описание для этого теста"
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr "Родительская деталь"
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr "Шаблон параметра"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr "Артикул или наименование детали"
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr "Значение IPN"
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "BOM Компонент"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr "Выберите родительскую деталь"
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr "Выбрать деталь для использования в BOM"
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Эта позиция - расходник. (она не отслеживается в заказах на сборку)"
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Разрешить разновидности"
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr "Для отслеживаемых деталей количество должно быть целым числом"
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr "Часть 1"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr "Часть 2"
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr "Выберите связанную часть"
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr "Валюта покупки этой единицы хранения"
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr "Не выбран ни один элемент"
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr "Выберите категорию"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)"
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)"
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr "Код производителя"
@@ -6378,190 +6375,190 @@ msgstr "Код производителя"
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr "Дублировать деталь"
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr "Копировать параметры категории"
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr "Копировать шаблоны параметров из выбранной категории деталей"
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr "Подходящая деталь не найдена"
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr "Некорректное количество"
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr "Зарезервировано для сборки"
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr "Создать новую разновидность детали"
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr "Неизвестная база данных"
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr "Действие не указано"
msgid "No matching action found"
msgstr "Соответствующее действие не найдено"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Не найдено совпадений для данных штрих-кода"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Найдено совпадение по штрих-коду"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr "Автор не найден"
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr "Название шаблона"
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr "Файл шаблона отчёта"
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr "Результаты проверки"
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr "Проверка"
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr "Необходимо указать количество"
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr "Место хранения"
msgid "Stock Locations"
msgstr "Места хранения"
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr "Выберите владельца"
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr "Родительская единица хранения"
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr "Базовая деталь"
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr "Выберите соответствующего поставщика части для этого товара на складе"
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr "Код партии для этой единицы хранения"
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr "Количество на складе"
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr "Исходная сборка"
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr "Удалить при обнулении"
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr "Удалить эту единицу хранения при обнулении складского запаса"
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr "Деталь не является отслеживаемой"
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "Серийные номера уже существуют"
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr "Введите количество товаров на складе для сериализации"
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr "Введите серийные номера для новых элементов"
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr "Выберите товар на складе для установки"
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr "Выбранная деталь отсутствует в спецификации"
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr "Выберите товары на складе для изменения статуса"
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr "Не выбрано ни одного товара на складе"
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr "Выбранная компания не является покупателем"
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr "Редактировать элемент BOM"
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr "Удалить элемент BOM"
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr "Элементы BOM не найдены"
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr "Унаследовано от родительского BOM"
@@ -10375,7 +10271,7 @@ msgstr ""
#: templates/js/translated/build.js:233
msgid "There are incomplete outputs remaining for this build order"
-msgstr "Для этого заказа остались незавершенные результаты"
+msgstr ""
#: templates/js/translated/build.js:285
msgid "Build order is ready to be completed"
@@ -10492,7 +10388,7 @@ msgstr ""
#: templates/js/translated/build.js:751
msgid "Scrap Build Outputs"
-msgstr "Выработка лома"
+msgstr ""
#: templates/js/translated/build.js:841
msgid "Selected build outputs will be deleted"
diff --git a/InvenTree/locale/sl/LC_MESSAGES/django.po b/InvenTree/locale/sl/LC_MESSAGES/django.po
index f40c4a04d0..f229aadaf4 100644
--- a/InvenTree/locale/sl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:02\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Language: sl_SI\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API vmesnik ni najden"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Napaka, podrobnosti vidne v pogledu administratorja"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Vnesi datum"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Vnesi datum"
msgid "Notes"
msgstr "Zapiski"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Vrednost '{name}' ni v predpisanem formatu"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Podana vrednost se ujema s predpisanim vzorcem: "
@@ -103,99 +98,99 @@ msgstr "Potrdite novo geslo"
msgid "Old password"
msgstr "Staro geslo"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Ponovnite e-pošto"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Potrdite e-pošto"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "E-pošti se morata ujemati"
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Podana epošta ni veljavna."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Domena epošte ni podprta."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Podana napačna količina"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Prazno polje serijske številke"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Dvojna serijska številka"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Nepravilni obseg skupine: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Obseg skupine {g} presega dovoljeno vrednost ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Nepravilno zaporedje skupine: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Serijske številke niso najdene"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Število unikatnih serijskih številk ({s}) se mora ujemati s količino ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Odstranite oznako HTML iz te vrednosti"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Napaka povezave"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Odziv serverja: napravilni status kode"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Pojavila se je izjema"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Odziv serverja: napačna dolžina vrednosti"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Prevelika velikost slike"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Prenos slike presegel največjo velikost"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Oddaljeni server vrnil prazen odziv"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Podani URL ni veljavna slikovna datoteka"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Nepravilno nastavljen vzorec"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Nastavljen neprepoznan ključ formata"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Manjka obvezen ključ formata"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Referenčno polje ne sme biti prazno"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Referenca se mora ujemati s vzorcem"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Referenčna številka prevelika"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Manjka datoteka"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Manjka zunanja povezava"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Priloga"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Izberite prilogo"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Izberite prilogo"
msgid "Link"
msgstr "Povezava"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Zunanja povezava"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Komentar"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Komentar datoteke"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Uporabnik"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "naloži datum"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Ime ne sme biti prazno"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Neveljavna mapa prilog"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Ime datoteke vsebuje neveljavni znak '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Datoteki manjka končnica"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Priloga s tem imenom že obstaja"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Napaka pri preimenovanju datoteke"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Nedovoljena izbira"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Nedovoljena izbira"
msgid "Name"
msgstr "Ime"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Ime"
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Opis (opcijsko)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "nadrejen"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Pot"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Podatki čtrne kode"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Podatki črtne kode tretje osebe"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Oznaka črtne kode"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Enolična oznaka podatkov črtne kode"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Črtna koda že obstaja"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Napaka strežnika"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Zaznana napaka na strežniku."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Mora biti veljavna številka"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Ime datoteke"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Neveljavna vrednost"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Podatki datoteke"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Izberite datoteke za naložiti"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Nepodprta vrsta datotek"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Datoteka je prevelika"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "V datoteki ni bilo najdenih stolpcev"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "V datoteki ni bilo njadenih vrstic"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Niso bile podane vrste s podatki"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Niso bili podani stolpci s podatki"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Manjka obvezni stolpec: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Dvojni stolpec: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "Povezava"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "Povezava do oddaljene slike"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Prenos slik iz oddaljene povezave ni omogočen"
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Nadzor dela v ozadju neuspel"
@@ -688,7 +683,7 @@ msgstr "Vrnjeno"
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Neveljavna oznaka valute"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Prestara vrednost ne sme biti negativna"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Prestarost ne sme presegati 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Neveljavna vrednost za prestarost"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Uredite informacije o uporabniku"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Nastavite geslo"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Polja z geslom se morajo ujemati"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Vnešeno nepravilno geslo"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Sistemske informacije"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "O InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Neveljavna izbira za nadrejeno izgradnjo"
msgid "Build Order Reference"
msgstr "Referenca naloga izgradnje"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Referenca dobavnica"
msgid "SalesOrder to which this build is allocated"
msgstr "Dobavnica na katero se navezuje ta izgradnja"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Status izgradnje"
msgid "Build status code"
msgstr "Koda statusa izgradnje"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Številka serije"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Številka serije za to izgradnjo"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Rok dokončanja"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Rok končanja izdelave. Izdelava po tem datumu bo v zamudi po tem datumu."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Datom končanja"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Uporabnik, ki je izdal nalog za izgradnjo"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Nalog izgradnje {build} je dokončan"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "Nalog izgradnej dokončan"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Ni določena izgradnja"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Igradnja je že dokončana"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Izgradnja se ne ujema s nalogom izdelave"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "Količina"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Izdelana postavka mora imeti izgradnjo, če je glavni del označen kot sledljiv"
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Prestavljena zaloga ({q}) ne sme presegati zaloge ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Preveč zaloge je prestavljene"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Prestavljena količina mora biti večja od 0"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Količina za zalogo s serijsko številko mora biti 1"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr "Postavka zaloge"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Izvorna postavka zaloge"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Količina zaloge za prestavljanje za izgradnjo"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Inštaliraj v"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Destinacija postavke zaloge"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Izgradnja"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "Izgradnja se ne ujema z nadrejeno izgradnjo"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "Izhodni del se ne ujema s naročilom sestava"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "Ta sestava je že zaključena"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "Notranja številka dela se mora ujemati z vzorcem {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 76399985e3..601c5ae028 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:02\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API-slutpunkt hittades inte"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Användaren har inte behörighet att se denna modell"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Information om felet finns under Error i adminpanelen"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Ange datum"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Ange datum"
msgid "Notes"
msgstr "Anteckningar"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Värdet '{name}' visas inte i mönsterformat"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Det angivna värdet matchar inte det obligatoriska mönstret: "
@@ -103,99 +98,99 @@ msgstr "Bekräfta nytt lösenord"
msgid "Old password"
msgstr "Tidigare lösenord"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "E-post (igen)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Bekräfta e-postadress"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Du måste ange samma e-post varje gång."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Den angivna primära e-postadressen är inte giltig."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Den angivna e-postdomänen är inte godkänd."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Ogiltigt antal angivet"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Tom serienummersträng"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ogiltigt gruppområde: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ogiltig gruppsekvens: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Inga serienummer hittades"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Antal unika serienummer ({s}) måste matcha antal ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Ta bort HTML-taggar från detta värde"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Anslutningsfel"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Servern svarade med ogiltig statuskod"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Undantag inträffade"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Servern svarade med ogiltigt innehållslängdsvärde"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Bilden är för stor"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Nedladdning av bilder överskred maximal storlek"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Fjärrservern returnerade tomt svar"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Angiven URL är inte en giltig bildfil"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr "E-post"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "Felaktigt formaterat mönster"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "Okänd formatnyckel angiven"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Obligatorisk formatnyckel saknas"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "Textfältet kan inte lämnas tomt"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "Referensen måste matcha obligatoriskt mönster"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "Referensnumret är för stort"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Saknad fil"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Extern länk saknas"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Bilaga"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Välj fil att bifoga"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Välj fil att bifoga"
msgid "Link"
msgstr "Länk"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Länk till extern URL"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Användare"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "uppladdningsdatum"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Filnamnet får inte vara tomt"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Ogiltig katalog för bilaga"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Filnamnet innehåller ogiltiga tecken '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Filnamn saknar ändelse"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Det finns redan en bilaga med detta filnamn"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Fel vid namnbyte av fil"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Ogiltigt val"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Ogiltigt val"
msgid "Name"
msgstr "Namn"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Namn"
msgid "Description"
msgstr "Beskrivning"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Beskrivning (valfritt)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "överordnad"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Sökväg"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Streckkodsdata"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Befintlig streckkod hittades"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Serverfel"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Ett fel har loggats av servern."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Välj valuta från tillgängliga alternativ"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Filnamn"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Ogiltigt värde"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Datafil"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Välj fil för uppladdning"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Filtypen stöds inte"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Filen är för stor"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Inga kolumner hittades i filen"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Inga rader hittades i filen"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Inga rader angivna"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Inga datakolumner har angetts"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Saknar obligatorisk kolumn: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplicerad kolumn: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL för fjärrbildsfil"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad"
@@ -639,7 +634,7 @@ msgstr "Kinesiska (Förenklad)"
msgid "Chinese (Traditional)"
msgstr "Kinesiska (Traditionell)"
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Kontroll av bakgrundsarbetare misslyckades"
@@ -688,7 +683,7 @@ msgstr "Återlämnad"
msgid "In Progress"
msgstr "Pågående"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "Återbetala"
msgid "Reject"
msgstr "Avvisa"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Inte en giltig valutakod"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Överskott värde får inte vara negativt"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Överskott får inte överstiga 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "Ogiltigt värde för överskott"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Redigera användarinformation"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Ställ in lösenord"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Lösenorden måste matcha"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Felaktigt lösenord angivet"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Systeminformation"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Om InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "Byggnationen måste avbrytas innan den kan tas bort"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "Ogiltigt val för överordnad bygge"
msgid "Build Order Reference"
msgstr "Byggorderreferens"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "Byggorder till vilken detta bygge är tilldelad"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Byggorder till vilken detta bygge är tilldelad"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Försäljningsorderreferens"
msgid "SalesOrder to which this build is allocated"
msgstr "Försäljningsorder till vilken detta bygge allokeras"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Byggstatus"
msgid "Build status code"
msgstr "Bygg statuskod"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Batchkod"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Batch-kod för denna byggutdata"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Datum för slutförande"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Måldatum för färdigställande. Byggandet kommer att förfallas efter detta datum."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Slutförandedatum"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Användare som utfärdade denna byggorder"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "Projektkod"
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "Byggorder {build} har slutförts"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "En byggorder har slutförts"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Ingen byggutgång angiven"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Byggutgång är redan slutförd"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "Byggutgång matchar inte bygg order"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "Antal"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Byggobjekt måste ange en byggutgång, eftersom huvuddelen är markerad som spårbar"
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Lagerposten är överallokerad"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Allokeringsmängden måste vara större än noll"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Antal måste vara 1 för serialiserat lager"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr "Artikel i lager"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Källa lagervara"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Lagersaldo att allokera för att bygga"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Installera till"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Destination lagervara"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Bygg utdata"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "Byggutdata matchar inte överordnad version"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Serienummer"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr "Plats"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr "Status"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "Acceptera ofullständig"
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Mål"
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr "Unik projektkod"
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr "Projektbeskrivning"
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Ingen grupp"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Omstart krävs"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr "Serverinstans (Namn)"
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Företagsnamn"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Internt företagsnamn"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "Bas-URL"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr "Bas-URL för serverinstans"
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Standardvaluta"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Ladda ned från URL"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Tillåt nedladdning av bilder och filer från extern URL"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Kräv bekräftelse"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Kräv uttrycklig användarbekräftelse för vissa åtgärder."
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Stöd för streckkoder"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Virtuell"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Delar är virtuella som standard"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr "Visa import i vyer"
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr "Visa importguiden i vissa delvyer"
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Visa relaterade delar"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Visa relaterade delar för en del"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Visningsformat för delnamn"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Formatera för att visa artikelnamnet"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Interna priser"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Aktivera etikettutskrift"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Aktivera etikettutskrift från webbgränssnittet"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "Etikettbild DPI"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr "Aktivera rapporter"
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr "Aktivera generering av rapporter"
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Debugläge"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Sidstorlek"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "Standard sidstorlek för PDF-rapporter"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr "Aktivera testrapporter"
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Tillåtna domäner"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr "Aktivera projektkoder"
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr "Sök efter artiklar"
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr "Sök efter leverantörsartikel"
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr "Sök efter tillverkarartikel"
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "Företag"
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr "Postnummer"
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr "Land"
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr "Leverantör"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Välj leverantör"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Välj leverantör"
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Kund"
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Tillverkare"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr "Adresser"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Ny leverantör"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Kunder"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Ny kund"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr "Etikett"
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr "QR-kod"
msgid "QR code"
msgstr "QR-kod"
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr "QR-kod"
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr "Leveransdatum"
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Nyckelord"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr "I lager"
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr "Artiklar"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr "Ikon (valfritt)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN måste matcha regex mönster {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr "Kategori"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr "Standardleverantör"
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr "Välj kategori"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr "Generera rapport"
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr "Okänd databas"
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
@@ -7261,20 +7258,19 @@ msgstr "Ingen åtgärd specificerad"
msgid "No matching action found"
msgstr "Ingen matchande åtgärd hittades"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr "Leverantörsnamn"
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index c6ad212567..133f421187 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:28\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-13 01:16\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "ป้อนวันที่"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "ป้อนวันที่"
msgid "Notes"
msgstr "หมายเหตุ"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -103,99 +98,99 @@ msgstr "ยืนยันรหัสผ่านใหม่"
msgid "Old password"
msgstr "รหัสผ่านเดิม"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "อีเมล (อีกครั้ง)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "การยืนยันอีเมล"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr ""
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "ปริมาณสินค้าไม่ถูกต้อง"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "หมายเลขซีเรียลซ้ำกัน"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "ไม่พบหมายเลขซีเรียล"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "การเชื่อมต่อขัดข้อง"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "ไฟล์รูปภาพมีขนาดใหญ่เกินไป"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "ไฟล์แนบ"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "เลือกไฟล์ที่ต้องการแนบ"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "เลือกไฟล์ที่ต้องการแนบ"
msgid "Link"
msgstr "ลิงก์"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "ความคิดเห็น"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "ความเห็นของไฟล์"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "ผู้ใช้งาน"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "วันที่อัปโหลด"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "จำเป็นต้องใส่ชื่อไฟล์"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "ชื่อไฟล์ห้ามมีตัวอักษรต้องห้าม '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "ไม่พบนามสกุลของไฟล์"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr ""
msgid "Name"
msgstr "ชื่อ"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "ชื่อ"
msgid "Description"
msgstr "คำอธิบาย"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr ""
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr ""
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "ข้อมูลบาร์โค้ด"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "บาร์โค้ดนี้มีในระบบแล้ว"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเวอร์"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "ต้องเป็นตัวเลข"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "ชื่อไฟล์"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "ไฟล์ข้อมูล"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "เลือกไฟล์ข้อมูลที่จะอัปโหลด"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "ไฟล์มีขนาดใหญ่เกินไป"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr ""
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr ""
@@ -688,7 +683,7 @@ msgstr "ส่งคืนแล้ว"
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "แก้ไขข้อมูลสมาชิก"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "ตั้งรหัสผ่าน"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "รหัสผ่านต้องตรงกัน"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "ป้อนรหัสผ่านไม่ถูกต้อง"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "ข้อมูลระบบ"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "เกี่ยวกับ Inventree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr ""
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr "สถานะ"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr ""
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index f1c9c826f7..325e64edb0 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:02\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API uç noktası bulunamadı"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Kullanıcının bu modeli görüntüleme izni yok"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Değer verilmemiş"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Hata detaylarını admin panelinde bulabilirsiniz"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Tarih giriniz"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Tarih giriniz"
msgid "Notes"
msgstr "Notlar"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "'{name}' değeri desen formatında yer almıyor"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Sağlanan değer gerekli kalıpla eşleşmiyor: "
@@ -103,99 +98,99 @@ msgstr "Yeni parolayı doğrulayın"
msgid "Old password"
msgstr "Eski parola"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "E-posta (tekrar)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "E-posta adresi onayı"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Her seferind eaynı e-posta adresini yazmalısınız."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Sağlanan e-posta adresi geçerli değil."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Sağlanan e-posta alanı onaylanmadı."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "Kayıt devre dışı."
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Boş seri numarası dizesi"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Yinelenen seri"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Geçersiz grup: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Seri numarası bulunamadı"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Bağlantı hatası"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Sunucu geçersiz durum kodu ile cevap verdi"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "İstisna oluştu"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Sunucu geçersiz Content-Length değeriyle yanıt verdi"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Resim boyutu çok büyük"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Resim indirme boyutu izin verilenden büyük"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Uzak sunucu boş cevap döndü"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir resim dosyası değil"
@@ -211,64 +206,64 @@ msgstr ""
msgid "Email"
msgstr "E-posta"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Eksik dosya"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Bozuk dış bağlantı"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Ek"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Eklenecek dosyayı seç"
msgid "Link"
msgstr "Bağlantı"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Yorum"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Kullanıcı"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "yükleme tarihi"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Dosya adı boş olamaz"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Ek dosya yolu geçersiz"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Dosya adı geçersiz karakterler içeriyor'{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Dosya uzantısı yok"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Aynı isimli başka bir dosya zaten var"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Dosya adı değiştirilirken hata"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Geçersiz seçim"
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Adı"
msgid "Description"
msgstr "Açıklama"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Açıklama (isteğe bağlı)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "üst"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Yol"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Barkod Verisi"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Üçüncü parti barkod verisi"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Barkod Hash"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Sunucu Hatası"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Para birimi"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Dosya adı"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Geçersiz değer"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Veri Dosyası"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Yüklemek istediğiniz dosyayı seçin"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Desteklenmeyen dsoya tipi"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Dosya boyutu çok büyük"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Dosyada kolon bulunamadı"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Dosyada satır bulunamadı"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Dosyada satır bulunamadı"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Dosyada uygun kolon bulunamadı"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Gerekli kolon ismi eksik:'{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Tekrarlanan kolon ismi:'{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr ""
@@ -639,7 +634,7 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "Arka plan çalışanı kontrolü başarısız oldu"
@@ -688,7 +683,7 @@ msgstr "İade"
msgid "In Progress"
msgstr "Devam Ediyor"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "Geçerli bir para birimi kodu değil"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "Fazlalık değeri negatif olmamalıdır"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "Fazlalık %100'ü geçmemelidir"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Kullanıcı Bilgisini Düzenle"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Şifre Belirle"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Parola alanları eşleşmelidir"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Sistem Bilgisi"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "InvenTree Hakkında"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ 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:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "Satış Emri Referansı"
msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "Yapım İşi Durumu"
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Sıra numarası"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "Hedef tamamlama tarihi"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak."
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Tamamlama tarihi"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr ""
msgid "Priority of this build order"
msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "Yapım işi çıktısı belirtilmedi"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "Yapım işi çıktısı zaten tamamlanmış"
-#: build/models.py:767
+#: build/models.py:772
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:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "Miktar"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
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:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr ""
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "Yapım işi için tahsis edilen stok miktarı"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Kurulduğu yer"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Seri Numaraları"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "Yapım işi çıktısı için seri numaraları girin"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr "Konum"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr "Durum"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "Gerekli stok tamamen tahsis edilemedi"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "Gerekli yapım işi miktarı tamamlanmadı"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi"
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr "Stok Kaynağı"
msgid "Stock can be taken from any available location."
msgstr "Stok herhangi bir konumdan alınabilir."
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Hedef"
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "Anahtar dizesi benzersiz olmalı"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Şirket adı"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "Ana URL"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Varsayılan Para Birimi"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "günler"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "URL'den indir"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver"
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Barkod Desteği"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr "DPN Regex"
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)"
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr "Yinelenen DPN'ye İzin Ver"
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver"
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr "DPN Düzenlemeye İzin Ver"
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver"
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr "Kategori Paremetre Sablonu Kopyala"
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Şablon"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr "Montaj"
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir"
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Bileşen"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Satın Alınabilir"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Satılabilir"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Takip Edilebilir"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Sanal"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Parçalar varsayılan olarak sanaldır"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "İlgili parçaları göster"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr "Hata Ayıklama Modu"
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)"
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr "Sayfa Boyutu"
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr "PDF raporlar için varsayılan sayfa boyutu"
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin"
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "Formlarda Miktarı Göster"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr "Fiyat"
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr "Aktif"
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr "Resim"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "İletişim e-posta adresi"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "Bu şirket üretim yapıyor mu?"
msgid "Default currency used for this company"
msgstr "Bu şirket için varsayılan para birimi"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Temel Parça"
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "Parça seçin"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr "Parça seçin"
msgid "Manufacturer"
msgstr "Üretici"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "Üretici seçin"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr "Üretici seçin"
msgid "MPN"
msgstr "ÜPN"
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "Üretici Parça Numarası"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Parametre adı"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Değer"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Parametre değeri"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr "Tedarikçi"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "Tedarikçi seçin"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr "Tedarikçi seçin"
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Not"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr "temel maliyet"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr "Paketleme"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr "çoklu"
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr "Müşteri"
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "Üreticiler"
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr "Stok Kalemleri"
msgid "Supplier Part Pricing"
msgstr "Tedarikçi Parçası Fiyatlandırması"
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "Yeni Tedarikçi"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "Yeni Üretici"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "Müşteriler"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "Yeni Müşteri"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "Şirketler"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "Yeni Şirket"
@@ -4425,7 +4422,7 @@ msgstr "Etiket"
msgid "Label template file"
msgstr "Etiket şablon listesi"
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr "Etkin"
@@ -4449,7 +4446,7 @@ msgstr "Yükseklik [mm]"
msgid "Label height, specified in mm"
msgstr "Etiket yüksekliği mm olarak belirtilmeli"
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr "Dosya Adı Deseni"
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr "Filtreler"
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr "Harici sayfaya bağlantı"
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr "Oluşturan"
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr "Sipariş referansı"
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "İşlemler"
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr "DPN"
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr "Revizyon"
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Anahtar kelimeler"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr "Çeşidi"
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "Minimum Stok"
@@ -5496,8 +5493,8 @@ msgstr "Minimum Stok"
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr "Parçalar"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Varsayılan Konum"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN regex kalıbıyla eşleşmelidir {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Parça adı"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr "Şablon Mu"
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr "Bu parça bir şablon parçası mı?"
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr "Bu parça başka bir parçanın çeşidi mi?"
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr "Varsayılan Tedarikçi"
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr "Varsayılan tedarikçi parçası"
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr "Bu parça diğer parçalardan yapılabilir mi?"
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?"
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr "Bu parça aktif mi?"
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr "Oluşturan Kullanıcı"
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
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:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
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:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:3861
+#: part/models.py:3906
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:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr "Yeni parça çeşidi oluştur"
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr "İşlem belirtilmedi"
msgid "No matching action found"
msgstr "Eşleşen eylem bulunamadı"
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr "Barkod verisi için eşleşme bulunamadı"
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr "Barkod verisi için eşleşme bulundu"
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr "Şablon için geçerli bir nesne sağlanmadı"
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr "Şablon adı"
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr "Rapor şablon dosyası"
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr "Rapor şablon tanımı"
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr "Revizyon numarası raporla (otomatik artış)"
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr "Rapor şablonu etkin"
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr "Stok kalemi sorgu filtreleri (anahter=değer [key=value] olarak virgülle ayrılmış liste)"
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr "Stok Konumu"
msgid "Stock Locations"
msgstr "Stok Konumları"
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr "Seri numarası olan ögenin miktarı bir olmalı"
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Miktar birden büyük ise seri numarası ayarlanamaz"
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr "Üst Stok Kalemi"
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
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:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr "Seri numaraları tam sayı listesi olmalı"
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr "Miktar seri numaları ile eşleşmiyor"
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr "İşlem notu ekle (isteğe bağlı)"
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr "Gerekli Parça"
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 7f87b250b2..63c419d5f4 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-15 16:33\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "API endpoint không tồn tại"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "Người dùng không được phân quyền xem mẫu này"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "Chưa cung cấp giá trị"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
-msgstr "Không thể chuyển đổi {original} sang {unit}"
+msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
-msgstr "Số lượng cung cấp không hợp lệ"
+msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr "Số lượng cung cấp không hợp lệ ({exc})"
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "Chi tiết lỗi có thể được tìm thấy trong bảng quản trị"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "Nhập ngày"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "Nhập ngày"
msgid "Notes"
msgstr "Ghi chú"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Giá trị '{name}' không xuất hiện ở định dạng mẫu"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "Giá trị được cung cấp không khớp với mẫu bắt buộc: "
@@ -103,99 +98,99 @@ msgstr "Xác nhận mật khẩu mới"
msgid "Old password"
msgstr "Mật khẩu cũ"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Email (nhắc lại)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Xác nhận địa chỉ email"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "Bạn phải nhập cùng một email mỗi lần."
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "Địa chỉ email chính đã cung cấp không hợp lệ."
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "Miền email được cung cấp không được phê duyệt."
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "Đăng ký bị vô hiệu hóa."
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "Số lượng cung cấp không hợp lệ"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "Chuỗi số sê-ri trống"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "Trùng lặp sê-ri"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Phạm vi nhóm không hợp lệ: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "Dãy nhóm {g} vượt quá số lượng cho phép ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Thứ tự nhóm không hợp lệ: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "Không tìm thấy số sê-ri"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
-msgstr "Số sê ri duy nhất ({s}) phải hợp với số lượng ({q})"
+msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "Xóa thẻ HTML từ giá trị này"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "Lỗi kết nối"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "Máy chủ phản hồi với mã trạng thái không hợp lệ"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "Xảy ra Exception"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "Máy chủ đã phản hồi với giá trị Content-Length không hợp lệ"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "Hình ảnh quá lớn"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "Tải xuống hình ảnh vượt quá kích thước tối đa"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "Máy chủ trả về phản hồi trống"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "URL được cung cấp không phải là tệp hình ảnh hợp lệ"
@@ -211,64 +206,64 @@ msgstr "[{site.name}] Đăng nhập vào ứng dụng"
msgid "Email"
msgstr "Email"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
-msgstr "Siêu dữ liệu phải là đối tượng từ điển của python"
-
-#: InvenTree/models.py:85
-msgid "Plugin Metadata"
-msgstr "Phụ trợ siêu dữ liệu"
+msgstr ""
#: InvenTree/models.py:86
+msgid "Plugin Metadata"
+msgstr ""
+
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
-msgstr "Trường siêu dữ liệu JSON, được sử dụng bởi phụ trợ bên ngoài"
+msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
-msgstr "Mẫu được định dạng không thích hợp"
+msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
-msgstr "Khóa định dạng không rõ ràng đã được chỉ định"
+msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "Thiếu khóa định dạng cần thiết"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
-msgstr "Trường tham chiếu không thể rỗng"
+msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
-msgstr "Tham chiếu phải phù hợp với mẫu yêu cầu"
+msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
-msgstr "Số tham chiếu quá lớn"
+msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "Tập tin bị thiếu"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "Thiếu liên kết bên ngoài"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "Đính kèm"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "Chọn file đính kèm"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "Chọn file đính kèm"
msgid "Link"
msgstr "Liên kết"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "Liên kết đến URL bên ngoài"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "Bình luận"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "Bình luận tệp tin"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "Người dùng"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "Ngày tải lên"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "Tên tập tin không được để trống"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "Thư mục đính kèm không hợp lệ"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Tên tập tin chứa ký tự không hợp lệ '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "Tên tệp tin thiếu phần mở rộng"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "Tên của tệp đính kèm này đã tồn tại"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "Lỗi khi đổi tên tệp tin"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "Lựa chọn sai"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "Lựa chọn sai"
msgid "Name"
msgstr "Tên"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "Tên"
msgid "Description"
msgstr "Mô tả"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "Mô tả (tùy chọn)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "thư mục cha"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "Đường dẫn"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Ghi chú markdown (không bắt buộc)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "Dữ liệu mã vạch"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "Dữ liệu mã vạch của bên thứ ba"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "Dữ liệu băm mã vạch"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "Chuỗi băm duy nhất của dữ liệu mã vạch"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "Mã vạch đã tồn tại"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "Lỗi máy chủ"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "Lỗi đã được ghi lại bởi máy chủ."
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "Phải là một số hợp lệ"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "Tiền tệ"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "Chọn tiền tệ trong các tùy chọn đang có"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "Tên tập tin"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "Giá trị không hợp lệ"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "Tập tin dữ liệu"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "Chọn tệp tin để tải lên"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "Loại tệp tin không được hỗ trợ"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "Tệp tin quá lớn"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "Không tìm thấy cột nào trong tệp tin"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "Không tìm thấy dòng nào trong tệp tin"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "Chưa có dữ liệu"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "Chưa cung cấp cột dữ liệu"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Thiếu cột bắt buộc: '{name}'"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Nhân bản cột: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "URL của tệp hình ảnh bên ngoài"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "Chức năng tải hình ảnh từ URL bên ngoài không được bật"
@@ -639,9 +634,9 @@ msgstr "Tiếng Trung (Giản thể)"
msgid "Chinese (Traditional)"
msgstr "Tiếng Trung (Phồn thể)"
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
-msgstr "Nhân công chạy ngầm kiểm tra thất bại"
+msgstr ""
#: InvenTree/status.py:72
msgid "Email backend not configured"
@@ -688,7 +683,7 @@ msgstr "Đã trả lại"
msgid "In Progress"
msgstr "Đang tiến hành"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -721,7 +716,7 @@ msgstr "Đã cách ly"
#: InvenTree/status_codes.py:91
msgid "Legacy stock tracking entry"
-msgstr "Mục theo dõi kho cổ điển"
+msgstr ""
#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544
msgid "Stock item created"
@@ -729,91 +724,91 @@ msgstr "Kho hàng đã được khởi tạo"
#: InvenTree/status_codes.py:96
msgid "Edited stock item"
-msgstr "Sửa kho hàng"
+msgstr ""
#: InvenTree/status_codes.py:97
msgid "Assigned serial number"
-msgstr "Số sê ri đã được gán"
+msgstr ""
#: InvenTree/status_codes.py:100
msgid "Stock counted"
-msgstr "Kho đã đếm"
+msgstr ""
#: InvenTree/status_codes.py:101
msgid "Stock manually added"
-msgstr "Kho được thêm thủ công"
+msgstr ""
#: InvenTree/status_codes.py:102
msgid "Stock manually removed"
-msgstr "Kho được xóa thủ công"
+msgstr ""
#: InvenTree/status_codes.py:105
msgid "Location changed"
-msgstr "Vị trí đã thay đổi"
+msgstr ""
#: InvenTree/status_codes.py:106
msgid "Stock updated"
-msgstr "Kho hàng đã được cập nhật"
+msgstr ""
#: InvenTree/status_codes.py:109
msgid "Installed into assembly"
-msgstr "Đã cài đặt vào bộ phận lắp ráp"
+msgstr ""
#: InvenTree/status_codes.py:110
msgid "Removed from assembly"
-msgstr "Di rời khỏi bộ phận lắp ráp"
+msgstr ""
#: InvenTree/status_codes.py:112
msgid "Installed component item"
-msgstr "Mục thành phần đã cài đặt"
+msgstr ""
#: InvenTree/status_codes.py:113
msgid "Removed component item"
-msgstr "Mục thành phần đã di rời"
+msgstr ""
#: InvenTree/status_codes.py:116
msgid "Split from parent item"
-msgstr "Tách từ mục cha"
+msgstr ""
#: InvenTree/status_codes.py:117
msgid "Split child item"
-msgstr "Tách mục con"
+msgstr ""
#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1826
msgid "Merged stock items"
-msgstr "Kho hàng đã được gộp"
+msgstr ""
#: InvenTree/status_codes.py:123
msgid "Converted to variant"
-msgstr "Đã chuyển đổi sang biến thể"
+msgstr ""
#: InvenTree/status_codes.py:126
msgid "Build order output created"
-msgstr "Đầu ra đơn đặt bản dựng đã được tạo"
+msgstr ""
#: InvenTree/status_codes.py:127
msgid "Build order output completed"
-msgstr "Đầu ra đơn đặt bản dựng đã hoàn thành"
+msgstr ""
#: InvenTree/status_codes.py:128
msgid "Build order output rejected"
-msgstr "Đầu ra đơn đặt bản dựng bị từ chối"
+msgstr ""
#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1732
msgid "Consumed by build order"
-msgstr "Tiêu hao bởi đơn đặt bản dựng"
+msgstr ""
#: InvenTree/status_codes.py:132
msgid "Shipped against Sales Order"
-msgstr "Vận chyển dựa vào đơn đặt bản dựng"
+msgstr ""
#: InvenTree/status_codes.py:135
msgid "Received against Purchase Order"
-msgstr "Đã nhận dựa vào đơn đặt hàng mua"
+msgstr ""
#: InvenTree/status_codes.py:138
msgid "Returned against Return Order"
-msgstr "Trả hành dựa vào đơn hàng trả lại"
+msgstr ""
#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375
msgid "Sent to customer"
@@ -847,62 +842,62 @@ msgstr "Hoàn tiền"
msgid "Reject"
msgstr "Từ chối"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
-msgstr "Đơn vị vật lý không hợp lệ"
+msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
-msgstr "Mã tiền tệ không hợp lệ"
+msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
-msgstr "Giá trị hàng hóa dư không thể là số âm"
+msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
-msgstr "Hàng hóa dư thừa không thể vượt quá 100%"
+msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
-msgstr "Giá trị không hợp lệ cho hàng hóa dư thừa"
+msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "Sửa thông tin người dùng"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "Đặt Mật khẩu"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "Mật khẩu phải trùng khớp"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "Nhập sai mật khẩu"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "Thông tin hệ thống"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "Giới thiệu"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
-msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa được"
+msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "Vật tư tiêu hao"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "Vật tư tiêu hao"
msgid "Optional"
msgstr "Tuỳ chọn"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr "Đã theo dõi"
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "Đã cấp phát"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -959,15 +954,15 @@ msgstr "Tạo đơn hàng"
#: build/models.py:115
msgid "Invalid choice for parent build"
-msgstr "Lựa chọn sai cho bản dựng cha"
+msgstr ""
#: build/models.py:159
msgid "Build Order Reference"
-msgstr "Tham chiếu đơn đặt bản dựng"
+msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -992,16 +987,16 @@ msgstr "Phiên bản cha"
#: build/models.py:180
msgid "BuildOrder to which this build is allocated"
-msgstr "Đơn đặt bản dựng với bản dựng này đã được phân bổ"
+msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1051,13 +1046,13 @@ msgstr "Chọn sản phẩm để xây dựng"
#: build/models.py:198
msgid "Sales Order Reference"
-msgstr "Tham chiếu đơn đặt bản dựng"
+msgstr ""
#: build/models.py:202
msgid "SalesOrder to which this build is allocated"
-msgstr "Đơn đặt bán hàng với bản dựng này đã được phân bổ"
+msgstr ""
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1065,7 +1060,7 @@ msgstr "Địa điểm nguồn"
#: build/models.py:211
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
-msgstr "Chọn địa điểm để lấy trong kho cho bản dựng này (để trống để lấy từ bất kỳ vị trí kho nào)"
+msgstr ""
#: build/models.py:216
msgid "Destination Location"
@@ -1073,7 +1068,7 @@ msgstr "Địa điểm đích"
#: build/models.py:220
msgid "Select location where the completed items will be stored"
-msgstr "Chọn địa điểm nơi hàng hóa hoàn thiện sẽ được lưu kho"
+msgstr ""
#: build/models.py:224
msgid "Build Quantity"
@@ -1081,7 +1076,7 @@ msgstr "Xây dựng số lượng"
#: build/models.py:227
msgid "Number of stock items to build"
-msgstr "Số kho hàng để dựng"
+msgstr ""
#: build/models.py:231
msgid "Completed items"
@@ -1099,17 +1094,17 @@ msgstr "Trnạg thái bản dựng"
msgid "Build status code"
msgstr "Mã trạng thái bản dựng"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "Mã lô hàng"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
-msgstr "Mã lô cho đầu ra bản dựng này"
+msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1122,9 +1117,9 @@ msgstr "Ngày hoàn thành mục tiêu"
#: build/models.py:262
msgid "Target date for build completion. Build will be overdue after this date."
-msgstr "Ngày mục tiêu để hoàn thành bản dựng. Bản dựng sẽ bị quá hạn sau ngày này."
+msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "Ngày hoàn thành"
@@ -1139,13 +1134,13 @@ msgstr "Cấp bởi"
#: build/models.py:280
msgid "User who issued this build order"
-msgstr "Người dùng người đã được phân công cho đơn đặt bản dựng này"
+msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1157,7 +1152,7 @@ msgstr "Chịu trách nhiệm"
#: build/models.py:289
msgid "User or group responsible for this build order"
-msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt bản dựng này"
+msgstr ""
#: build/models.py:294 build/templates/build/detail.html:108
#: company/templates/company/manufacturer_part.html:107
@@ -1165,7 +1160,7 @@ msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt bản
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1177,10 +1172,10 @@ msgstr "Độ ưu tiên"
#: build/models.py:302
msgid "Priority of this build order"
-msgstr "Độ quan trọng của đơn đặt bản dựng"
+msgstr ""
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1192,50 +1187,50 @@ msgstr "Mã dự án"
#: build/models.py:310
msgid "Project code for this build order"
-msgstr "Mã dự án cho đơn đặt bản dựng này"
+msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
-msgstr "Đơn đặt bản dựng {build} đã được hoàn thành"
+msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
-msgstr "Một đơn đặt bản dựng đã được hoàn thành"
+msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
-msgstr "Không có đầu ra bản dựng đã được chỉ ra"
+msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
-msgstr "Đầu ra bản dựng đã được hoàn thiện"
+msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
-msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng"
+msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
-msgstr "Số lượng phải lớn hơn 0"
+msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
-msgstr "Số lượng không thể lớn hơn số lượng đầu ra"
+msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
-msgstr "Dựng đối tượng"
+msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr "Dựng đối tượng"
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr "Dựng đối tượng"
msgid "Quantity"
msgstr "Số lượng"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
-msgstr "Yêu cầu số lượng để dựng đơn đặt"
+msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr "Xây dựng mục phải xác định đầu ra, bởi vì sản phẩm chủ được đánh dấu là có thể theo dõi"
+msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
-msgstr "Số lượng được phân bổ ({q}) không thể vượt quá số lượng có trong kho ({a})"
+msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
-msgstr "Kho hàng đã bị phân bổ quá đà"
+msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
-msgstr "Số lượng phân bổ phải lớn hơn 0"
+msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1321,87 +1316,87 @@ msgstr ""
#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843
#: templates/js/translated/stock.js:2948
msgid "Stock Item"
-msgstr "Kho hàng"
+msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
-msgstr "Kho hàng gốc"
+msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
-msgstr "Số lượng kho hàng cần chỉ định để xây dựng"
+msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "Cài đặt vào"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
-msgstr "Kho hàng đích"
+msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "Đầu ra bản dựng"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "Số sê-ri"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr ""
msgid "Location"
msgstr "Địa điểm"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,175 +1448,179 @@ msgstr ""
msgid "Status"
msgstr "Trạng thái"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "Xóa toàn bộ đầu ra chưa hoàn thành"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr "Chưa được cấp phép"
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
-msgstr "Lộ giới"
+msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
-msgstr "Đầu ra bản dựng"
+msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
-msgstr "Đầu ra bản dựng phải chỉ đến bản dựng tương ứng"
+msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
-msgstr "Hàng hóa phải trong kho"
+msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
-msgstr "Số lượng có sẵn ({q}) đã bị vượt quá"
+msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
-msgstr "Đầu ra bản dựng phải được xác định cho việc phân phụ kiện được theo dõi"
+msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
-msgstr "Đầu ra bản dựng không thể chỉ định cho việc phân phụ kiện chưa được theo dõi"
+msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
-msgstr "Hàng hóa phân bổ phải được cung cấp"
+msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
-msgstr "Kho được yêu cầu cho đặt hàng bản dựng"
+msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
-msgstr "Đơn đặt bản dựng quá hạn"
+msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
-msgstr "Đặt hàng bản dựng {bo} đang quá hạn"
+msgstr ""
#: build/templates/build/build_base.html:18
msgid "Part thumbnail"
-msgstr "Ảnh thu nhỏ phụ kiện"
+msgstr ""
#: build/templates/build/build_base.html:39
#: company/templates/company/supplier_part.html:36
@@ -1633,7 +1632,7 @@ msgstr "Ảnh thu nhỏ phụ kiện"
#: stock/templates/stock/location.html:54
#: templates/js/translated/filters.js:335
msgid "Barcode actions"
-msgstr "Chức năng mã vạch"
+msgstr ""
#: build/templates/build/build_base.html:43
#: company/templates/company/supplier_part.html:40
@@ -1679,19 +1678,19 @@ msgstr "Chức năng in ấn"
#: build/templates/build/build_base.html:61
msgid "Print build order report"
-msgstr "Báo cáo in đơn đặt bản dựng"
+msgstr ""
#: build/templates/build/build_base.html:68
msgid "Build actions"
-msgstr "Chức năng bản dựng"
+msgstr ""
#: build/templates/build/build_base.html:72
msgid "Edit Build"
-msgstr "Sửa bản dựng"
+msgstr ""
#: build/templates/build/build_base.html:74
msgid "Cancel Build"
-msgstr "Hủy bản dựng"
+msgstr ""
#: build/templates/build/build_base.html:77
msgid "Duplicate Build"
@@ -1712,27 +1711,27 @@ msgstr "Mô tả bản dựng"
#: build/templates/build/build_base.html:118
msgid "No build outputs have been created for this build order"
-msgstr "Không có đầu ra bản dựng đã được tạo cho đơn đặt bản dựng này"
+msgstr ""
#: build/templates/build/build_base.html:125
msgid "Build Order is ready to mark as completed"
-msgstr "Đơn đặt bản dựng đã được đánh dấu hoàn thành"
+msgstr ""
#: build/templates/build/build_base.html:130
msgid "Build Order cannot be completed as outstanding outputs remain"
-msgstr "Đơn đặt bản dựng không thể hoàn thiện bởi vì những đầu ra nổi bật còn tồn tại"
+msgstr ""
#: build/templates/build/build_base.html:135
msgid "Required build quantity has not yet been completed"
-msgstr "Số lượng bản dựng được yêu cầu chưa được hoàn thành"
+msgstr ""
#: build/templates/build/build_base.html:140
msgid "Stock has not been fully allocated to this Build Order"
-msgstr "Kho không được phân bổ đầy đủ với yêu cầu bản dựng này"
+msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1749,7 +1748,7 @@ msgstr "Ngày mục tiêu"
#: build/templates/build/build_base.html:166
#, python-format
msgid "This build was due on %(target)s"
-msgstr "Bản dựng đã đến hạn vào %(target)s"
+msgstr ""
#: build/templates/build/build_base.html:166
#: build/templates/build/build_base.html:223
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr "Đầu ra hoàn thiện"
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1782,14 +1781,14 @@ msgstr "Đầu ra hoàn thiện"
#: templates/js/translated/sales_order.js:989
#: templates/js/translated/stock.js:2895
msgid "Sales Order"
-msgstr "Đơn đặt hàng"
+msgstr ""
#: build/templates/build/build_base.html:198
#: build/templates/build/detail.html:115
#: report/templates/report/inventree_build_order_base.html:152
#: templates/js/translated/table_filters.js:24
msgid "Issued By"
-msgstr "Phát hành bởi"
+msgstr ""
#: build/templates/build/build_base.html:212
#: build/templates/build/detail.html:94 templates/js/translated/build.js:2138
@@ -1798,29 +1797,29 @@ msgstr "Độ ưu tiên"
#: build/templates/build/build_base.html:274
msgid "Delete Build Order"
-msgstr "Xóa đơn đặt bản dựng"
+msgstr ""
#: build/templates/build/build_base.html:284
msgid "Build Order QR Code"
-msgstr "Mã QR đơn đặt bản dựng"
+msgstr ""
#: build/templates/build/build_base.html:296
msgid "Link Barcode to Build Order"
-msgstr "Liên kết mã vạch đến Đơn đặt bản dựng này"
+msgstr ""
#: build/templates/build/detail.html:15
msgid "Build Details"
-msgstr "Chi tiết bản dựng"
+msgstr ""
#: build/templates/build/detail.html:38
msgid "Stock Source"
-msgstr "Nguồn kho"
+msgstr ""
#: build/templates/build/detail.html:43
msgid "Stock can be taken from any available location."
-msgstr "Kho có thể được lấy từ bất kỳ địa điểm nào."
+msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr "Đích đến"
@@ -1831,7 +1830,7 @@ msgstr "Địa điểm đích chưa được xác định"
#: build/templates/build/detail.html:73
msgid "Allocated Parts"
-msgstr "Phụ kiện đã phân bổ"
+msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:123
#: stock/templates/stock/item_base.html:163
@@ -1869,64 +1868,64 @@ msgstr "Xây dựng chưa hoàn thiện"
#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
-msgstr "Đơn đặt bản dựng con"
+msgstr ""
#: build/templates/build/detail.html:177
msgid "Allocate Stock to Build"
-msgstr "Phân bổ kho đến bản dựng"
+msgstr ""
#: build/templates/build/detail.html:181
msgid "Deallocate stock"
-msgstr "Phân kho"
+msgstr ""
#: build/templates/build/detail.html:182
msgid "Deallocate Stock"
-msgstr "Phân kho"
+msgstr ""
#: build/templates/build/detail.html:184
msgid "Automatically allocate stock to build"
-msgstr "Tự động chỉ định kho đến bản dựng"
+msgstr ""
#: build/templates/build/detail.html:185
msgid "Auto Allocate"
-msgstr "Tự động phân bổ"
+msgstr ""
#: build/templates/build/detail.html:187
msgid "Manually allocate stock to build"
-msgstr "Chỉ định kho thủ công đến bản dựng"
+msgstr ""
#: build/templates/build/detail.html:188 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
-msgstr "Chỉ định kho"
+msgstr ""
#: build/templates/build/detail.html:191
msgid "Order required parts"
-msgstr "Đơn đặt yêu cầu phụ kiện"
+msgstr ""
#: build/templates/build/detail.html:192
#: templates/js/translated/purchase_order.js:800
msgid "Order Parts"
-msgstr "Đặt hàng phụ kiện"
+msgstr ""
#: build/templates/build/detail.html:210
msgid "Incomplete Build Outputs"
-msgstr "Đầu ra bản dựng chưa hoàn thành"
+msgstr ""
#: build/templates/build/detail.html:214
msgid "Create new build output"
-msgstr "Tạo đầu ra bản dựng mới"
+msgstr ""
#: build/templates/build/detail.html:215
msgid "New Build Output"
-msgstr "Đầu ra bản dựng mới"
+msgstr ""
#: build/templates/build/detail.html:232 build/templates/build/sidebar.html:15
msgid "Consumed Stock"
-msgstr "Kho tiêu thụ"
+msgstr ""
#: build/templates/build/detail.html:244
msgid "Completed Build Outputs"
-msgstr "Đầu ra bản dựng hoàn thiện"
+msgstr ""
#: build/templates/build/detail.html:256 build/templates/build/sidebar.html:19
#: company/templates/company/detail.html:229
@@ -1946,52 +1945,52 @@ msgstr "Tập tin đính kèm"
#: build/templates/build/detail.html:271
msgid "Build Notes"
-msgstr "Ghi chép bản dựng"
+msgstr ""
#: build/templates/build/detail.html:422
msgid "Allocation Complete"
-msgstr "Phân bổ hoàn thành"
+msgstr ""
#: build/templates/build/detail.html:423
msgid "All lines have been fully allocated"
-msgstr "Tất cả đường đã được chỉ định đầy đủ"
+msgstr ""
#: build/templates/build/index.html:18 part/templates/part/detail.html:319
msgid "New Build Order"
-msgstr "Tạo đơn đặt bản dựng"
+msgstr ""
#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
-msgstr "Chi tiết đơn đặt bản dựng"
+msgstr ""
#: build/templates/build/sidebar.html:10
msgid "Incomplete Outputs"
-msgstr "Đầu ra chưa hoàn thiện"
+msgstr ""
#: common/files.py:63
#, python-brace-format
msgid "Unsupported file format: {fmt}"
-msgstr "Định dạng tệp không được hỗ trợ {fmt}"
+msgstr ""
#: common/files.py:65
msgid "Error reading file (invalid encoding)"
-msgstr "Lỗi đọc file (mã hóa không hợp lệ)"
+msgstr ""
#: common/files.py:70
msgid "Error reading file (invalid format)"
-msgstr "Lỗi đọc file (định dạng không hợp lệ)"
+msgstr ""
#: common/files.py:72
msgid "Error reading file (incorrect dimension)"
-msgstr "Lỗi đọc file (kích thước không hợp lệ)"
+msgstr ""
#: common/files.py:74
msgid "Error reading file (data could be corrupted)"
-msgstr "Lỗi đọc file (dữ liệu có thể bị hư hại)"
+msgstr ""
#: common/forms.py:13
msgid "File"
-msgstr "Tệp"
+msgstr ""
#: common/forms.py:14
msgid "Select file to upload"
@@ -2014,1372 +2013,1372 @@ msgstr "Đã cập nhật"
msgid "Timestamp of last update"
msgstr "Nhãn thời gian của lần cập cuối cùng"
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr "Mã dự án duy nhất"
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr "Mô tả dự án"
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường)"
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr "Giá trị cài đặt"
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr "Giá trị đã chọn không hợp lệ"
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr "Giá trị phải là kiểu boolean"
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr "Giá trị phải là một số nguyên dương"
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr "Chuỗi khóa phải duy nhất"
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr "Không có nhóm"
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr "Tên miền rỗng là không được phép."
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Tên miền không hợp lệ: {domain}"
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
-msgstr "Không phần mở rộng"
+msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr "Cần khởi động lại"
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
-msgstr "Một thiết lập đã bị thay đổi yêu cầu khởi động lại máy chủ"
+msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
-msgstr "Mô tả chuỗi cho thực thể máy chủ"
+msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
-msgstr "Sử dụng tên thực thể"
+msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
-msgstr "Sử dụng tên thực thể trên thanh tiêu đề"
+msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
-msgstr "Cấm hiển thị `giới thiệu`"
+msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
-msgstr "Chỉ hiển thị cửa sổ `giới thiệu` với siêu người dùng"
+msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "Tên công ty"
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr "Tên công ty nội bộ"
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr "URL cơ sở"
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
-msgstr "URL cơ sở cho thực thể máy chủ"
+msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr "Tiền tệ mặc định"
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
-msgstr "Chọn tiền tệ chính khi tính giá"
+msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
-msgstr "Tần suất cập nhật tiền tệ"
+msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
-msgstr "Mức độ thường xuyên để cập nhật tỉ giá hối đoái (điền 0 để tắt)"
+msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "ngày"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
-msgstr "Phần mở rộng cập nhật tiền tệ"
+msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
-msgstr "Phần mở rộng cập nhật tiền tệ được sử dụng"
+msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr "Tải về từ URL"
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
-msgstr "Cho phép tải ảnh và tệp tin từ xa theo URL bên ngoài"
+msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
-msgstr "Giới hạn kích thước tải xuống"
-
-#: common/models.py:1144
-msgid "Maximum allowable download size for remote image"
-msgstr "Kích thước tải xuống tối đa với hình ảnh từ xa"
+msgstr ""
#: common/models.py:1155
+msgid "Maximum allowable download size for remote image"
+msgstr ""
+
+#: common/models.py:1166
msgid "User-agent used to download from URL"
-msgstr "User-agent được dùng để tải xuống theo URL"
+msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
-msgstr "Cho phép ghi đè user-agent được dùng để tải về hình ảnh và tệp tin từ xa theo URL bên ngoài (để trống nghĩa là dùng mặc định)"
+msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr "Yêu cầu xác nhận"
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr "Yêu cầu người dùng xác nhận rõ ràng với một số chức năng nhất định."
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr "Cấp độ cây"
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr "Độ sâu cây mặc định cho màn hình cây. Cấp độ sâu hơn sẽ sử dụng kỹ thuật tải chậm nếu cần thiết."
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr "Thời gian kiểm tra bản cập nhật"
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr "Mức độ thường xuyên để kiểm tra bản cập nhật (điền 0 để tắt)"
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "Sao lưu tự động"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "Bật tính năng sao lưu tự động cơ sở dữ liệu và tệp tin đa phương tiện"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "Khoảng thời gian sao lưu tự động"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr "Xác định số ngày giữa các kỳ sao lưu tự động"
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr "Khoảng thời gian xóa tác vụ"
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr "Kết quả tác vụ chạy ngầm sẽ bị xóa sau số ngày được chỉ định"
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr "Khoảng thời gian xóa nhật ký lỗi"
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr "Nhật ký lỗi sẽ bị xóa sau số ngày được chỉ định"
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr "Khoảng thời gian xóa thông báo"
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr "Thông báo sẽ bị xóa sau số ngày được chỉ định"
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Hỗ trợ mã vạch"
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr "Bật hỗ trợ máy quét mã vạch trong giao diện web"
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr "Độ trễ quét mã vạch"
-#: common/models.py:1248
-msgid "Barcode input processing delay time"
-msgstr "Thời gian trễ xử lý đầu đọc mã vạch"
-
-#: common/models.py:1258
-msgid "Barcode Webcam Support"
-msgstr "Hỗ trợ mã vạch qua webcam"
-
#: common/models.py:1259
+msgid "Barcode input processing delay time"
+msgstr ""
+
+#: common/models.py:1269
+msgid "Barcode Webcam Support"
+msgstr ""
+
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
-msgstr "Cho phép quét mã vạch qua webcam bên trong trình duyệt"
+msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
-msgstr "Phiên bản Sản phẩm"
-
-#: common/models.py:1266
-msgid "Enable revision field for Part"
-msgstr "Bật trường phiên bản cho sản phẩm"
-
-#: common/models.py:1272
-msgid "IPN Regex"
-msgstr "Mẫu IPN"
-
-#: common/models.py:1273
-msgid "Regular expression pattern for matching Part IPN"
-msgstr "Mẫu dùng nhanh phổ biến dành cho tìm IPN sản phẩm"
+msgstr ""
#: common/models.py:1277
-msgid "Allow Duplicate IPN"
-msgstr "Cho phép trùng IPN"
+msgid "Enable revision field for Part"
+msgstr ""
-#: common/models.py:1278
-msgid "Allow multiple parts to share the same IPN"
-msgstr "Cho phép nhiều sản phẩm dùng IPN giống nhau"
+#: common/models.py:1283
+msgid "IPN Regex"
+msgstr ""
#: common/models.py:1284
+msgid "Regular expression pattern for matching Part IPN"
+msgstr ""
+
+#: common/models.py:1288
+msgid "Allow Duplicate IPN"
+msgstr ""
+
+#: common/models.py:1289
+msgid "Allow multiple parts to share the same IPN"
+msgstr ""
+
+#: common/models.py:1295
msgid "Allow Editing IPN"
-msgstr "Cho phép sửa IPN"
+msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
-msgstr "Cho phép đổi giá trị IPN khi sửa một sản phẩm"
+msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
-msgstr "Sao chép dữ liệu BOM của sản phẩm"
+msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
-msgstr "Sao chép dữ liệu BOM mặc định khi nhân bản 1 sản phẩm"
+msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
-msgstr "Sao chép dữ liệu tham số sản phẩm"
+msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
-msgstr "Sao chép dữ liệu tham số mặc định khi nhân bản 1 sản phẩm"
+msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr "Chép thông tin kiểm thử sản phẩm"
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
-msgstr "Sao chép dữ liệu kiểm thử mặc định khi nhân bản 1 sản phẩm"
+msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
-msgstr "Sao chéo mẫu tham số danh mục"
+msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
-msgstr "Sao chéo mẫu tham số danh mục khi tạo 1 sản phẩm"
+msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr "Mẫu"
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
-msgstr "Sản phẩm là mẫu bởi mặc định"
+msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
-msgstr "Lắp ráp"
+msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
-msgstr "Sản phẩm có thể lắp giáp từ thành phần khác theo mặc định"
+msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr "Thành phần"
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr "Sản phẩm có thể được sử dụng mặc định như thành phần phụ"
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "Có thể mua"
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr "Sản phẩm mặc định có thể mua được"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr "Có thể bán"
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr "Sản phẩm mặc định có thể bán được"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr "Có thể theo dõi"
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr "Sản phẩm mặc định có thể theo dõi được"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr "Ảo"
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr "Sản phẩm mặc định là số hóa"
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
-msgstr "Hiển thị Nhập liệu trong khung xem"
+msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
-msgstr "Hiển thị đồ thuật nhập dữ liệu trong một số khung nhìn sản phẩm"
+msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr "Hiển thị sản phẩm liên quan"
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr "Hiện sản phẩm liên quan cho 1 sản phẩm"
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr "Số liệu tồn kho ban đầu"
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr "Cho phép tạo tồn kho ban đầu khi thêm 1 sản phẩm mới"
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr "Dữ liệu nhà cung cấp ban đầu"
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr "Cho phép tạo dữ liệu nhà cung cấp ban đầu khi thêm 1 sản phẩm mới"
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr "Định dạng tên sản phẩm hiển thị"
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr "Định dạng để hiển thị tên sản phẩm"
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr "Biểu tượng mặc định của danh mục sản phẩm"
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr "Biểu tượng mặc định của danh mục sản phẩm (để trống nghĩa là không có biểu tượng)"
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
-msgstr "Bắt buộc đơn vị tham số"
+msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
-msgstr "Nếu đơn vị được cung cấp, giá trị tham số phải phù hợp với các đơn vị xác định"
-
-#: common/models.py:1417
-msgid "Minimum Pricing Decimal Places"
-msgstr "Vị trí phần thập phân giá bán tối thiểu"
-
-#: common/models.py:1418
-msgid "Minimum number of decimal places to display when rendering pricing data"
-msgstr "Số vị trí thập phân tối thiểu cần hiển thị khi tạo dữ liệu giá"
+msgstr ""
#: common/models.py:1428
-msgid "Maximum Pricing Decimal Places"
-msgstr "Vị trí phần thập phân giá bán tối đa"
+msgid "Minimum Pricing Decimal Places"
+msgstr ""
#: common/models.py:1429
-msgid "Maximum number of decimal places to display when rendering pricing data"
-msgstr "Số vị trí thập phân tối đa cần hiển thị khi tạo dữ liệu giá"
+msgid "Minimum number of decimal places to display when rendering pricing data"
+msgstr ""
#: common/models.py:1439
-msgid "Use Supplier Pricing"
-msgstr "Sử dụng giá bán nhà cung cấp"
+msgid "Maximum Pricing Decimal Places"
+msgstr ""
#: common/models.py:1440
+msgid "Maximum number of decimal places to display when rendering pricing data"
+msgstr ""
+
+#: common/models.py:1450
+msgid "Use Supplier Pricing"
+msgstr ""
+
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
-msgstr "Bao gồm giá phá vỡ cả nhà cung cấp trong tính toán giá tổng thể"
+msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
-msgstr "Ghi đè lịch sử mua hàng"
+msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
-msgstr "Giá đơn hàng đặt mua trước đó ghi đè giá phá vỡ của nhà cung cấp"
+msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
-msgstr "Sử dụng giá hàng hóa trong kho"
+msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr "Sử dụng giá biến thể"
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr "Giá nội bộ"
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr "Bật giá nội bộ cho sản phẩm"
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr "Ghi đè giá nội bộ"
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr "Nếu khả dụng, giá nội bộ ghi đè tính toán khoảng giá"
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr "Bật in tem nhãn"
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr "Bật chức năng in tem nhãn từ giao diện web"
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr "DPI hỉnh ảnh tem nhãn"
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr "Độ phân giải DPI khi tạo tệp hình ảnh để cung cấp cho plugin in ấn tem nhãn"
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
-msgstr "Bật quên mật khẩu"
+msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr "Yêu cầu email"
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr "Yêu cầu người dùng cung cấp email để đăng ký"
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr "Thư 2 lần"
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr "Mật khẩu 2 lần"
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr "Các tên miền được phép"
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr "Bật tích hợp ứng dụng"
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
-msgstr "Bật tích hợp nguồn cấp sự kiện"
+msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
-msgstr "Bật mã dự án"
+msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr "Khoảng thời gian xóa báo cáo"
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường"
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr "Ẩn phụ kiện ngừng hoạt động"
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr "Hiển thị nguyên liệu mới nhất"
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ"
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr "Hiển thị hàng còn ít"
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr "Hiển thị hàng hóa còn ít tại trang chủ"
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr "Hiển thị hết hàng"
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr "Hiển thị hàng hóa đã bán hết tại trang chủ"
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr "Hiển thị hàng cần thiết"
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr "Hiện đơn mua hàng quá hạn trên trang chủ"
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr "Hiện đơn hàng vận chuyển nổi bật"
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr "Hiện đơn hàng vận chuyển nổi bật tại trang chủ"
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr "Hiện đơn vận chuyển quá hạn"
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr "Hiện đơn vận chuyển quá hạn trên trang chủ"
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr "Hiện đơn vận chuyển chờ xử lý"
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr "Hiện đơn vận chuyển chờ xử lý trên trang chủ"
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr "Hiện tin tức"
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr "Hiện tin tức trên trang chủ"
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr "Hiển thị nhãn cùng dòng"
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Hiển thị nhãn PDF trong trình duyệt, thay vì tải về dạng tệp tin"
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr "Máy in tem nhãn mặc định"
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr "Cấu hình máy in tem nhãn nào được chọn mặc định"
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr "Hiển thị báo cáo cùng hàng"
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr "Tìm kiếm danh mục"
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr "Hiện danh mục phụ kiện trong cửa sổ xem trước tìm kiếm"
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr "Tìm kiếm kho"
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr "Hiện hàng hóa ở kho trong cửa sổ xem trước tìm kiếm"
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr "Ẩn hàng hóa trong kho không có sẵn"
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Không bao gồm hàng hóa trong kho mà không sẵn sàng từ màn hình xem trước tìm kiếm"
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr "Tìm kiếm vị trí"
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr "Hiện vị trí kho hàng trong cửa sổ xem trước tìm kiếm"
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr "Tìm kiếm công ty"
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr "Hiện công ty trong cửa sổ xem trước tìm kiếm"
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr "Tìm kiếm đặt hàng xây dựng"
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr "Hiện đơn đặt xây dựng trong cửa sổ xem trước tìm kiếm"
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr "Tìm kiếm đơn đặt mua"
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr "Hiện đơn đặt mua trong cửa sổ xem trước tìm kiếm"
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr "Loại trừ đơn đặt mua không hoạt động"
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Loại trừ đơn đặt mua không hoạt động ra khỏi cửa sổ xem trước tìm kiếm"
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr "Tìm đơn đặt hàng người mua"
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr "Hiện đơn đặt hàng người mua trong cửa sổ xem trước tìm kiếm"
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr "Loại trừ đơn đặt hàng người mua không hoạt động"
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr "Không bao gồm đơn đặt hàng người mua không hoạt động trong cửa sổ xem trước tìm kiếm"
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr "Tìm kiếm đơn hàng trả lại"
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr "Kết quả xem trước tìm kiếm"
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr "Số kết quả cần hiển thị trong từng phần của cửa sổ xem trước tìm kiếm"
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr "Tìm kiếm biểu thức"
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr "Bật tìm kiếm biểu thức chính quy trong câu truy vấn tìm kiếm"
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr "Tìm phù hợp toàn bộ chữ"
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr "Hiện số lượng trong biểu mẫu"
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr "Đầu mục"
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr "Đầu mục tin nhắn"
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr "Thân"
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr "Thân tin nhắn này"
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr "Đầu mối của tin nhắn này đã nhận được"
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr "Làm việc vào"
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr "Công việc trong tin nhắn này đã kết thúc?"
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr "Mã"
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Tiêu đề"
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr "Đã công bố"
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr "Tác giả"
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Tóm tắt"
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr "Đọc"
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr "Tin này đã được đọc?"
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr "Tin này đã được đọc?"
msgid "Image"
msgstr "Hình ảnh"
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr "Tệp ảnh"
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr "Tên đơn vị"
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Biểu tượng"
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr "Địa chỉ email liên hệ"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr "Công ty này có sản xuất phụ kiện?"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr "Nhà sản xuất"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "Tên tham số"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr "Giá trị"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "Giá trị tham số"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr "Đơn vị"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "Đơn vị tham số"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr "Nhà cung cấp"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr "SKU"
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "Ghi chú"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr "Đơn hàng"
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr "Đơn hàng"
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr "Giá mua"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr "Chức năng"
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr "Nguyên liệu"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "Điểm bán mặc định"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Tổng số lượng"
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "Số hàng tồn"
@@ -5616,7 +5613,7 @@ msgstr "Số hàng tồn"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "Tên sản phẩm"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr "Sản phẩm này có phải là sản phẩm mẫu?"
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr "Đây có phải là 1 biến thể của sản phẩm khác?"
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr "Mô tả (không bắt buộc)"
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong kết quả tìm kiếm"
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong k
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "Danh mục sản phẩm"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr "Mã sản phẩm nội bộ"
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr "Nhà cung ứng sản phẩm mặc định"
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr "Thời gian hết hạn (theo ngày) để nhập kho hàng hóa cho sản phẩm này"
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr "Ngày kiểm tra BOM"
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr "Chi phí BOM tối đa"
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr "Bộ đếm sản phẩm"
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr "Cấp độ BOM"
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "Mục BOM"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr "Chọn sản phẩm được dùng trong BOM"
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr "Sản phẩm gốc"
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr "Chọn sản phẩm gốc để nhân bản"
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr "Sao chép hình ảnh từ sản phẩm gốc"
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr "Sao chép định mức nguyên vật liệu từ sản phẩm gốc"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr "Sao chép thông số"
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr "Sao chép thông tin tham số từ sản phẩm gốc"
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr "Nhân bản sản phẩm"
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr "Sao chép thông số nhóm hàng"
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr "Cập nhật sản phẩm"
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr "Cập nhật giá cho sản phẩm này"
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr "Chọn sản phẩm để sao chép định mức nguyên vật liệu"
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr "Kho hàng"
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index cd116a3076..d84f00189a 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-19 12:30+0000\n"
-"PO-Revision-Date: 2023-10-19 16:27\n"
+"POT-Creation-Date: 2023-10-11 12:00+0000\n"
+"PO-Revision-Date: 2023-10-12 01:02\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Language: zh_TW\n"
@@ -17,53 +17,48 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "找不到 API 端點"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr "使用者沒有檢視此模型的權限"
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:96
msgid "No value provided"
msgstr "未提供值"
-#: InvenTree/conversion.py:125
+#: InvenTree/conversion.py:129
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
-#: InvenTree/conversion.py:127
+#: InvenTree/conversion.py:131
msgid "Invalid quantity supplied"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "詳細的錯誤訊息可以在管理介面中瀏覽"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "輸入日期"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:139 stock/models.py:2286 stock/models.py:2394
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:1039 stock/serializers.py:1138
+#: stock/serializers.py:1299 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
#: templates/js/translated/part.js:1077
#: templates/js/translated/purchase_order.js:2179
@@ -74,12 +69,12 @@ msgstr "輸入日期"
msgid "Notes"
msgstr "備註"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "值「{name}」並沒有在格式內出現"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "提供的值不符合要求的格式: "
@@ -103,99 +98,99 @@ msgstr "確認新密碼"
msgid "Old password"
msgstr "舊密碼"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "再次輸入Email"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Email地址確認"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "您必須輸入相同的Email"
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "所提供的主要Email無效。"
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "所提供的Email網域尚未被核准。"
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr "註冊功能已停用。"
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "提供的數量無效"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "序號為空白"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "重複的序號"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "無效的群組範圍:{g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "群組範圍 {g} 超過允許的數量({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "無效的群組序列:{g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "找不到序號"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "不重複的序號數量({s})必須和數量({q})相同"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "從這個值中移除HTML標籤"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "連線錯誤"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "伺服器回應了無效的狀態碼"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "發生異常"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "伺服器回應了不正確的Content-Length值。"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "圖片尺寸過大"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "圖片超過最大可下載的尺寸"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "遠端伺服器回傳了空白回應"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "提供的URL不是有效的圖片檔案"
@@ -211,64 +206,64 @@ msgstr "[{site.name}] 登入 App"
msgid "Email"
msgstr "Email"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr "Metadata必須是一個Python Dictionary物件"
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr "外掛程式Metadata"
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr "外掛程式使用的JSON Metadata欄位"
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "格式錯誤"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "指定了不明的格式鍵值"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "缺少必須的格式鍵值"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "參考欄位不能空白"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "參考欄位並須符合格式"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "參考編號過大"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "缺少檔案"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "缺少外部連結"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2388
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "附件"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "選擇附件"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2866 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:138 templates/js/translated/company.js:1309
@@ -282,71 +277,71 @@ msgstr "選擇附件"
msgid "Link"
msgstr "連結"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:830
msgid "Link to external URL"
msgstr "外部URL連結"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "註解"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "檔案註解"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2325
+#: common/models.py:2326 common/models.py:2539 common/models.py:2540
+#: common/models.py:2796 common/models.py:2797 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:233 plugin/models.py:234
#: report/templates/report/inventree_test_report_base.html:105
#: templates/js/translated/stock.js:3007
msgid "User"
msgstr "使用者"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "上傳日期"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "檔名不得空白"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "無效的附件目錄"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "檔名內有不允許的字元 '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "檔案名稱缺少副檔名"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "已有同檔案名稱的附件"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "重新命名時發生錯誤"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr "同一個上層元件下不能有重複的名字"
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "無效的選項"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2525
+#: common/models.py:2973 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:172 stock/models.py:71 stock/models.py:72
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
@@ -363,17 +358,17 @@ msgstr "無效的選項"
msgid "Name"
msgstr "名稱"
-#: InvenTree/models.py:656 build/models.py:168
-#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: InvenTree/models.py:672 build/models.py:168
+#: build/templates/build/detail.html:24 common/models.py:126
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:185
+#: report/models.py:617 report/models.py:661
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
@@ -400,126 +395,126 @@ msgstr "名稱"
msgid "Description"
msgstr "描述"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673 stock/models.py:79
msgid "Description (optional)"
msgstr "描述(選填)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "上層元素"
-#: InvenTree/models.py:672 InvenTree/models.py:673
+#: InvenTree/models.py:688 InvenTree/models.py:689
#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
msgid "Path"
msgstr "路徑"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr "Markdown 註記(選填)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "條碼資料"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "第三方條碼資料"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "條碼雜湊值"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "條碼資料的唯一雜湊值"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "發現現有條碼"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "伺服器錯誤"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "伺服器紀錄了一個錯誤。"
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "必須是有效的數字"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "貨幣"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr "從可用選項中選擇貨幣"
-#: InvenTree/serializers.py:364
+#: InvenTree/serializers.py:368
msgid "Filename"
msgstr "檔案名稱"
-#: InvenTree/serializers.py:401
+#: InvenTree/serializers.py:405
msgid "Invalid value"
msgstr "無效的值"
-#: InvenTree/serializers.py:423
+#: InvenTree/serializers.py:427
msgid "Data File"
msgstr "資料檔"
-#: InvenTree/serializers.py:424
+#: InvenTree/serializers.py:428
msgid "Select data file for upload"
msgstr "選擇要上傳的資料檔案"
-#: InvenTree/serializers.py:445
+#: InvenTree/serializers.py:449
msgid "Unsupported file type"
msgstr "不支援的檔案類型"
-#: InvenTree/serializers.py:451
+#: InvenTree/serializers.py:455
msgid "File is too large"
msgstr "檔案大小過大"
-#: InvenTree/serializers.py:472
+#: InvenTree/serializers.py:476
msgid "No columns found in file"
msgstr "檔案中找不到欄位"
-#: InvenTree/serializers.py:475
+#: InvenTree/serializers.py:479
msgid "No data rows found in file"
msgstr "檔案中找不到資料列"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:602
msgid "No data rows provided"
msgstr "沒有提供資料列"
-#: InvenTree/serializers.py:601
+#: InvenTree/serializers.py:605
msgid "No data columns supplied"
msgstr "沒有提供資料欄位"
-#: InvenTree/serializers.py:678
+#: InvenTree/serializers.py:682
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "找不到必須的欄位: 「{name}」"
-#: InvenTree/serializers.py:687
+#: InvenTree/serializers.py:691
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "重複的欄位:「{col}」"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:717
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:718
msgid "URL of remote image file"
msgstr "遠端圖片的URL"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:732
msgid "Downloading images from remote URL is not enabled"
msgstr "尚未啟用從遠端URL下載圖片"
@@ -639,7 +634,7 @@ msgstr "中文(简体)"
msgid "Chinese (Traditional)"
msgstr "中文(繁體)"
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1001
msgid "Background worker check failed"
msgstr "背景工作程式檢查失敗"
@@ -688,7 +683,7 @@ msgstr "已退回"
msgid "In Progress"
msgstr "進行中"
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -847,62 +842,62 @@ msgstr "退款"
msgid "Reject"
msgstr "拒絕"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "無效的貨幣代碼"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "損失值不能為負"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "損失率不能超過100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "無效的損失值"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "編輯使用者資訊"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "設定密碼"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "密碼必須相符"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "密碼錯誤"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "系統資訊"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "關於InvenTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "工單必須被取消才能被刪除"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
#: templates/js/translated/table_filters.js:190
#: templates/js/translated/table_filters.js:579
msgid "Consumable"
msgstr "耗材"
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
#: templates/js/translated/build.js:2514
#: templates/js/translated/table_filters.js:186
@@ -911,23 +906,23 @@ msgstr "耗材"
msgid "Optional"
msgstr "非必須項目"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
+#: build/api.py:289 templates/js/translated/table_filters.js:408
#: templates/js/translated/table_filters.js:575
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1725
#: templates/js/translated/build.js:2605
#: templates/js/translated/sales_order.js:1926
#: templates/js/translated/table_filters.js:567
msgid "Allocated"
msgstr "已分配"
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2546
#: templates/js/translated/index.js:123
#: templates/js/translated/model_renderers.js:226
#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
@@ -965,9 +960,9 @@ msgstr "無效的上層生產工單選擇"
msgid "Build Order Reference"
msgstr "生產工單代號"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1739 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
@@ -995,13 +990,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "這張生產工單對應的上層生產工單"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:959 part/serializers.py:1374
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1012,7 +1007,7 @@ msgstr "這張生產工單對應的上層生產工單"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1057,7 +1052,7 @@ msgstr "銷售訂單代號"
msgid "SalesOrder to which this build is allocated"
msgstr "這張生產工單對應的銷售訂單"
-#: build/models.py:207 build/serializers.py:942
+#: build/models.py:207 build/serializers.py:946
#: templates/js/translated/build.js:1712
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
@@ -1099,17 +1094,17 @@ msgstr "生產狀態"
msgid "Build status code"
msgstr "生產狀態代碼"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:834 stock/serializers.py:1263
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "批量代碼"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "本批次成品的生產批號"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1124,7 +1119,7 @@ msgstr "目標完成日期"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生產的預計完成日期。若超過此日期則工單會逾期。"
-#: build/models.py:265 order/models.py:413 order/models.py:1765
+#: build/models.py:265 order/models.py:422 order/models.py:1782
#: templates/js/translated/build.js:2229
msgid "Completion Date"
msgstr "完成日期"
@@ -1142,10 +1137,10 @@ msgid "User who issued this build order"
msgstr "發布此生產工單的使用者"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2201
@@ -1165,7 +1160,7 @@ msgstr "負責此生產工單的使用者或群組"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:828
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1179,8 +1174,8 @@ msgstr "製造優先度"
msgid "Priority of this build order"
msgstr "此生產工單的優先程度"
-#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
+#: build/models.py:309 common/models.py:119 order/admin.py:17
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
#: templates/js/translated/build.js:2126
#: templates/js/translated/purchase_order.js:1689
#: templates/js/translated/return_order.js:315
@@ -1194,48 +1189,48 @@ msgstr "專案代碼"
msgid "Project code for this build order"
msgstr "此生產工單隸屬的專案代碼"
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "生產工單 {build} 已經完成"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "一張生產工單已經完成"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "尚未指定生產品項"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "生產成品已經完成"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "生產品項與生產工單不符"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1216 part/serializers.py:1537
+#: stock/models.py:688 stock/models.py:1482 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "數量必須大於零"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr "數量不能大於工單生產數量"
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2347
+#: order/models.py:1086 order/models.py:1660 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1245,7 +1240,7 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:121 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
@@ -1277,38 +1272,38 @@ msgstr ""
msgid "Quantity"
msgstr "數量"
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr "生產工單所需數量"
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "分配的數量({q})不能超過可用的庫存數量({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1616
msgid "Stock item is over-allocated"
msgstr "庫存品項超額分配"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1619
msgid "Allocation quantity must be greater than zero"
msgstr "分配的數量必須大於零"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "有序號的品項數量必須為1"
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr "選擇的庫存品項和BOM的項目不符"
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:970
+#: stock/serializers.py:1096 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
#: templates/js/translated/build.js:1726
@@ -1323,85 +1318,85 @@ msgstr "選擇的庫存品項和BOM的項目不符"
msgid "Stock Item"
msgstr "庫存品項"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "來源庫存項目"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "要分配的庫存數量"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "安裝到"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "目的庫存品項"
-#: build/serializers.py:155 build/serializers.py:824
+#: build/serializers.py:156 build/serializers.py:828
#: templates/js/translated/build.js:1303
msgid "Build Output"
msgstr "產出"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "產出與上層生產工單不符"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "產出零件與生產工單不符"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "此筆產出已完成"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "此筆產出的分配尚未完成"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "輸入產出數量"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "可追蹤的零件數量必須為整數"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "因為BOM包含可追蹤的零件,所以數量必須為整數"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
msgid "Serial Numbers"
msgstr "序號"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "輸入產出的序號"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "自動分配序號"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "自動為需要項目分配對應的序號"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:810
msgid "The following serial numbers already exist or are invalid"
msgstr "序號已存在或無效"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "必須提供產出清單"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:971
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1131 stock/serializers.py:1402
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
@@ -1418,30 +1413,30 @@ msgstr "必須提供產出清單"
msgid "Location"
msgstr "地點"
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr "報廢的庫存位置"
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr "放棄分配"
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1765 order/serializers.py:530 stock/admin.py:124
+#: stock/serializers.py:703 stock/serializers.py:1270
#: stock/templates/stock/item_base.html:428
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
#: templates/js/translated/purchase_order.js:1293
@@ -1453,168 +1448,172 @@ msgstr ""
msgid "Status"
msgstr "狀態"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "接受未分配"
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "接受不完整"
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:983
msgid "Item must be in stock"
msgstr "商品必須有庫存"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "排除位置"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "可互換庫存"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1731,8 +1730,8 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
@@ -1769,8 +1768,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1820,7 +1819,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
+#: build/templates/build/detail.html:49 order/models.py:1235
#: templates/js/translated/purchase_order.js:2168
msgid "Destination"
msgstr ""
@@ -2014,1372 +2013,1372 @@ msgstr ""
msgid "Timestamp of last update"
msgstr ""
-#: common/models.py:119
+#: common/models.py:120
msgid "Unique project code"
msgstr ""
-#: common/models.py:126
+#: common/models.py:127
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:646
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:648
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:689
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:706
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:717
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:756
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:963
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:988
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:990
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
+#: common/models.py:1003
msgid "No plugin"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1071
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1072
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1079
msgid "Pending migrations"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1080
msgid "Number of pending database migrations"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1086
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1088
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1093
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1094
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1100
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1101
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1107 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1108
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1113
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1114
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1121
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1122
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1129
msgid "Currency Update Interval"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1130
msgid "How often to update exchange rates (set to zero to disable)"
msgstr ""
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
+#: common/models.py:1132 common/models.py:1196 common/models.py:1214
+#: common/models.py:1221 common/models.py:1232 common/models.py:1243
+#: common/models.py:1474 common/models.py:1498 common/models.py:1617
+#: common/models.py:1873
msgid "days"
msgstr "天"
-#: common/models.py:1129
+#: common/models.py:1140
msgid "Currency Update Plugin"
msgstr ""
-#: common/models.py:1130
+#: common/models.py:1141
msgid "Currency update plugin to use"
msgstr ""
-#: common/models.py:1136
+#: common/models.py:1147
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1148
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1154
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1155
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1166
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1167
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1172
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1173
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1179
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1180
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1189
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1190
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1200
msgid "Automatic Backup"
msgstr "自動備份"
-#: common/models.py:1190
+#: common/models.py:1201
msgid "Enable automatic backup of database and media files"
msgstr "啟動資料庫和媒體文件自動備份"
-#: common/models.py:1196
+#: common/models.py:1207
msgid "Auto Backup Interval"
msgstr "自動備份間隔"
-#: common/models.py:1197
+#: common/models.py:1208
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1218
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1219
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1229
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1230
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1240
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1241
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1251 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1252
msgid "Enable barcode scanner support in the web interface"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1258
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1259
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1269
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1270
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1276
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1277
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1283
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1284
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1288
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1289
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1295
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1296
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1302
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1303
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1309
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1310
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1316
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1317
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1323
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1324
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
+#: common/models.py:1330 part/admin.py:55 part/models.py:3621
+#: report/models.py:178 templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:763
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1331
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
+#: common/models.py:1337 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
#: templates/js/translated/table_filters.js:330
#: templates/js/translated/table_filters.js:717
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1338
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
+#: common/models.py:1344 part/admin.py:52 part/models.py:1007
#: templates/js/translated/table_filters.js:725
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1345
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1351 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1352
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
+#: common/models.py:1358 part/admin.py:54 part/models.py:1023
#: templates/js/translated/table_filters.js:751
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1359
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1365 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
#: templates/js/translated/table_filters.js:767
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1366
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1372 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:771
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1373
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1379
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1380
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1386
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1387
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1393
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1394
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1400 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1401
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1407
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1408
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1415
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1416
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1421
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1422
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1428
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1429
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1439
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1440
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1450
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1451
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1457
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1458
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1464
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1465
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1471
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1472
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1482
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1483
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1489
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1490
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1496
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1497
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1507
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1508
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1514
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1515
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1521
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1522
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1528
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1529
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1538
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1539
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1545 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1546
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1552 report/models.py:199
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1553
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1559
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1560
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1566
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1567
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1573
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1574
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1580
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1581
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1587
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1588
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1594
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1595
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1600
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1601
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1607
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1608
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1614
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1615
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1622
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1623
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1629
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1630
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1636
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1637
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1642
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1643
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1649
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1650
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1656
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1657
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1663
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1664
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1670
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1671
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1677
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1678
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1684
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1685
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1691
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1692
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1698
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1699
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1705
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1706
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1713
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1714
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1720
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1721
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1727
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1728
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1734
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1735
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1741
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1742
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1748
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1749
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1755
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1756
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1762
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1763
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1769
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1770
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1776
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1777
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1783
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1784
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1790
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1791
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1799
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1800
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1807
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1808
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1815
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1816
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1823
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1824
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1831
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1832
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1839
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1840
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1846
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1847
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1853
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1854
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1860
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1861
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1870
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1871
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1888 common/models.py:2318
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1929
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1930
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1936
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1937
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1943
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1944
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1950
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1951
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1957
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1958
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1964
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1965
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1971
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1972
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1978
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1979
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1985
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1986
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1992
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1993
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1999
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:2000
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:2006
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:2007
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:2013
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:2014
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:2020
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:2021
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:2027
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2028
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2034
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:2035
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:2041
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:2042
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:2048
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:2049
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:2055
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:2056
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2062
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:2063
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:2069
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:2070
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:2076
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:2077
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2083
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2084
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2090
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2091
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2097
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2098
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2104
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2105
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2111
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2112
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2118
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2119
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2125
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2126
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2132
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2133
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2139
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2140
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2146
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2147
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2153
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2154
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2160
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2161
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2167
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2168
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2174
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2175
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2181
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2182
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2188
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2189
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2195
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2196
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2202
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2203
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2209
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2210
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2216
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2217
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2223
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2224
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2230
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2231
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2237
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2238
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2252 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2253
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2259 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2260
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2266
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2267
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2276
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2277
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2285
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2286
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2294
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2295
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2303
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2304
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2348
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
+#: common/models.py:2355 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1954
#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:738
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2356
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2516 common/models.py:2694
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2517
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2526
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2531 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
#: templates/js/translated/table_filters.js:488
@@ -3388,101 +3387,101 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2532
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2546
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2547
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2554
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2555
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2661
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2662
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2670
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2671
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2678
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2679
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2685
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2686
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2695
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2700
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2701
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2855
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2861 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2871 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:2876 templates/InvenTree/settings/plugin_settings.html:32
#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2881 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2886
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2887
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2907 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3492,56 +3491,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2908
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2952
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2974
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2981
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2987 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2988
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3572,7 +3571,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3614,7 +3613,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3656,113 +3655,113 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:770
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:439
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
@@ -3772,12 +3771,12 @@ msgstr ""
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:445
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
@@ -3787,71 +3786,69 @@ msgstr ""
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
+#: stock/models.py:2381 templates/js/translated/company.js:1156
#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
#: templates/js/translated/stock.js:1502
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 plugin/builtin/suppliers/digikey.py:29
-#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29
-#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:428 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
@@ -3862,12 +3859,12 @@ msgstr ""
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:434
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1829
@@ -3875,54 +3872,54 @@ msgstr ""
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:434
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:137 stock/models.py:796 stock/serializers.py:1278
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
#: templates/js/translated/stock.js:2394
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
+#: company/models.py:746 templates/js/translated/company.js:1641
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
@@ -3932,27 +3929,27 @@ msgstr ""
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4014,10 +4011,10 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1753 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:815
+#: stock/models.py:816 stock/serializers.py:1025
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
@@ -4032,7 +4029,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4196,7 +4193,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4227,7 +4224,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4277,7 +4274,7 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:779
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
@@ -4367,10 +4364,10 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
@@ -4384,28 +4381,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4425,7 +4422,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:314
msgid "Enabled"
msgstr ""
@@ -4449,7 +4446,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:307
msgid "Filename Pattern"
msgstr ""
@@ -4463,8 +4460,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:335 report/models.py:482
+#: report/models.py:520 report/models.py:558 report/models.py:682
msgid "Filters"
msgstr ""
@@ -4481,7 +4478,7 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
@@ -4490,11 +4487,11 @@ msgstr ""
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
@@ -4508,7 +4505,7 @@ msgstr ""
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1924 order/models.py:1970
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
@@ -4517,192 +4514,192 @@ msgstr ""
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
+#: order/models.py:404 order/templates/order/order_base.html:148
#: templates/js/translated/purchase_order.js:1681
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1776
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1777
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1783
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1770
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1771
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1923
+#: order/models.py:1970 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
+#: order/models.py:1216 order/templates/order/order_base.html:196
#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
#: templates/js/translated/purchase_order.js:1291
#: templates/js/translated/purchase_order.js:2148
@@ -4712,342 +4709,342 @@ msgstr ""
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:918 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
#: templates/js/translated/stock.js:2281
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1642 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:446
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1607
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1609
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1612
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1622 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1625
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1626
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1634
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1643
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
+#: order/models.py:1656 order/models.py:1931
#: templates/js/translated/return_order.js:719
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1657
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1660
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1740
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1754
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1765
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1916
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1932
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1937
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1938
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1949 templates/js/translated/return_order.js:730
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1949
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1955
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5404,7 +5401,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5434,47 +5431,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
#: stock/admin.py:119
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
#: stock/admin.py:120
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
#: templates/js/translated/stock.js:2006
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:191 templates/js/translated/part.js:1228
#: templates/js/translated/part.js:2342
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5482,11 +5479,11 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
@@ -5496,8 +5493,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2597
#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
#: templates/js/translated/table_filters.js:170
msgid "On Order"
@@ -5512,28 +5509,28 @@ msgstr ""
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:966
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:976
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:43 stock/admin.py:134
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:44
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:337
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
@@ -5544,70 +5541,70 @@ msgstr ""
msgid "Parts"
msgstr "零件"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5616,7 +5613,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5662,62 +5659,62 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:350 part/serializers.py:965
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
@@ -5725,249 +5722,249 @@ msgstr ""
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
#: templates/js/translated/part.js:2466
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -5979,398 +5976,398 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:509
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:516
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2863
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
+#: part/models.py:3348 templates/js/translated/part.js:2872
#: templates/js/translated/table_filters.js:477
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2880
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2887
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
+#: part/models.py:3484 templates/js/translated/part.js:1624
#: templates/js/translated/table_filters.js:817
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1633
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:672
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:171 part/serializers.py:194 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:343
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:351
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:382
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:387
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:392 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:392
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:397
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:402
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:412
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:418
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:428
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:439
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:445
msgid "Manufacturer part number"
msgstr ""
@@ -6378,190 +6375,190 @@ msgstr ""
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:459
+#: part/serializers.py:460
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:472
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:480
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
+#: part/serializers.py:733 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:468
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:733
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:738 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:738
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:743
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:749
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:750
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:959
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:965
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:971
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:976
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:977
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:982
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:983
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:988
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:989
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:997
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1087
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1088
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1375
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1383
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1384
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1389
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1390
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1395
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1396
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1401
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1402
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1442
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1443
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1473
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1516
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1519
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1522
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1531
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1539
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1560
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
+#: part/stocktake.py:225 templates/js/translated/part.js:1063
#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
#: templates/js/translated/purchase_order.js:2063
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:291
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:292
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6777,7 +6774,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6961,7 +6958,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7219,11 +7216,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7261,20 +7258,19 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111
-#: plugin/base/barcodes/api.py:269
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:82
+#: plugin/base/barcodes/api.py:80
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:86
+#: plugin/base/barcodes/api.py:84
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:121
+#: plugin/base/barcodes/api.py:120
#: templates/js/translated/purchase_order.js:1391
msgid "Barcode matches existing item"
msgstr ""
@@ -7283,52 +7279,6 @@ msgstr ""
msgid "No match found for provided value"
msgstr ""
-#: plugin/base/barcodes/api.py:275
-msgid "Invalid purchase order"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:281
-msgid "Invalid stock location"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:292
-msgid "Item has already been received"
-msgstr ""
-
-#: plugin/base/barcodes/api.py:314
-msgid "Invalid supplier barcode"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:170
-msgid "Supplier barcode doesn't contain order number"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:183
-#, python-brace-format
-msgid "Found multiple placed purchase orders for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:185
-#, python-brace-format
-msgid "Failed to find placed purchase order for '{order_number}'"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:215
-msgid "Failed to find pending line item for supplier part"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:248
-msgid "Further information required to receive line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:259
-msgid "Received purchase order line item"
-msgstr ""
-
-#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324
-msgid "Found multiple matching supplier parts for barcode"
-msgstr ""
-
#: plugin/base/label/label.py:40
msgid "Label printing failed"
msgstr ""
@@ -7345,8 +7295,6 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:34
#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
-#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25
-#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25
msgid "InvenTree contributors"
msgstr ""
@@ -7384,7 +7332,7 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
@@ -7412,68 +7360,20 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/builtin/suppliers/digikey.py:21
-msgid "Supplier Integration - DigiKey"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:22
-msgid "Provides support for scanning DigiKey barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/digikey.py:30
-msgid "The Supplier which acts as 'DigiKey'"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:22
-msgid "Supplier Integration - LCSC"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:23
-msgid "Provides support for scanning LCSC barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/lcsc.py:31
-msgid "The Supplier which acts as 'LCSC'"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:21
-msgid "Supplier Integration - Mouser"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:22
-msgid "Provides support for scanning Mouser barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/mouser.py:30
-msgid "The Supplier which acts as 'Mouser'"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:22
-msgid "Supplier Integration - TME"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:23
-msgid "Provides support for scanning TME barcodes"
-msgstr ""
-
-#: plugin/builtin/suppliers/tme.py:31
-msgid "The Supplier which acts as 'TME'"
-msgstr ""
-
-#: plugin/installer.py:140
+#: plugin/installer.py:145
msgid "Permission denied: only staff users can install plugins"
msgstr ""
-#: plugin/installer.py:186
+#: plugin/installer.py:191
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:192
+#: plugin/installer.py:197
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:201
+#: plugin/installer.py:206
msgid "Plugin installation failed"
msgstr ""
@@ -7501,43 +7401,43 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
+#: plugin/models.py:130 templates/js/translated/table_filters.js:370
#: templates/js/translated/table_filters.js:500
msgid "Installed"
msgstr ""
-#: plugin/models.py:138
+#: plugin/models.py:140
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:149
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
+#: plugin/models.py:175 templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:50
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:226
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:509
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:511
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:513
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7614,33 +7514,29 @@ msgstr ""
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:142
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:143
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
#: report/helpers.py:14
-msgid "A3"
+msgid "A4"
msgstr ""
#: report/helpers.py:15
@@ -7651,107 +7547,107 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:171
+#: report/models.py:173
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:179
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:186
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:192
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
+#: report/models.py:200
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:203
+#: report/models.py:205
msgid "Landscape"
msgstr ""
-#: report/models.py:204
+#: report/models.py:206
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:305
+#: report/models.py:308
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:315
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:336
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:344
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:345
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:406
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:407
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:448
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:449
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:483
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:521
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:559
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:612
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:613
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:617
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:654
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:655
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:662
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:683
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7792,7 +7688,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
+#: stock/models.py:820 stock/templates/stock/item_base.html:312
#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
#: templates/js/translated/build.js:2337
#: templates/js/translated/model_renderers.js:222
@@ -7818,12 +7714,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2369 templates/js/translated/stock.js:1475
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2375
msgid "Result"
msgstr ""
@@ -7891,7 +7787,7 @@ msgstr ""
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:132 stock/models.py:803
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
@@ -7916,33 +7812,33 @@ msgstr ""
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:149 stock/models.py:884
#: stock/templates/stock/item_base.html:434
#: templates/js/translated/stock.js:2200
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:508 templates/js/translated/table_filters.js:427
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:715
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:722
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:750
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:759
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:782
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7958,7 +7854,7 @@ msgstr ""
msgid "Default icon for all locations that have no icon set (optional)"
msgstr ""
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:116 stock/models.py:787
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
@@ -7970,12 +7866,12 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:181 stock/models.py:923
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:182 stock/models.py:924
msgid "Select Owner"
msgstr ""
@@ -8005,221 +7901,221 @@ msgstr ""
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:652
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:678 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:695
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:705 stock/models.py:714
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:706
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:728
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:734
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:748
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:762
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:772
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:780
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:790
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:797 stock/serializers.py:1279
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:806
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:822
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:836 stock/serializers.py:1264
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:841
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:848
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:850
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:856 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:858
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:869
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:872
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:878
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:885
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:900
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:919
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:947
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1473
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1479
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1485
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1488
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1491
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1498 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1569
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1572
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1575
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1578
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1581
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1584
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1591 stock/serializers.py:1175
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1595
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1599
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1603
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1797
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2287
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2345
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2351
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2370
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2376
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2382
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2389
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2395
msgid "Test notes"
msgstr ""
@@ -8231,141 +8127,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1132 stock/serializers.py:1403
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:987
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:991
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:995
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:1026
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:1032
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1040
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1050 stock/serializers.py:1310
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1139
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1144
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1145
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1150
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1151
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1161
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1250
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1271
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1300
msgid "Stock transaction notes"
msgstr ""
@@ -9905,7 +9801,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2541
msgid "Required Quantity"
msgstr ""
@@ -10282,74 +10178,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2579
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2583
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2585
#: templates/js/translated/part.js:1253
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2587
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2570
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2470
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
diff --git a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
index 97120fe042..f003012549 100644
--- a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-18 03:46+0000\n"
+"POT-Creation-Date: 2023-09-29 21:02+0000\n"
"PO-Revision-Date: 2023-02-28 22:38\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -17,74 +17,75 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr "未找到 API 端点"
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:93
#, fuzzy
#| msgid "No value set"
msgid "No value provided"
msgstr "未设置值"
-#: InvenTree/conversion.py:125
-#, python-brace-format
-msgid "Could not convert {original} to {unit}"
+#: InvenTree/conversion.py:115
+#, fuzzy
+#| msgid "Chosen value is not a valid option"
+msgid "Provided value is not a valid number"
+msgstr "选择的值不是一个有效的选项"
+
+#: InvenTree/conversion.py:117
+msgid "Provided value has an invalid unit"
+msgstr ""
+
+#: InvenTree/conversion.py:122
+msgid "Provided value could not be converted to the specified unit"
msgstr ""
#: InvenTree/conversion.py:127
-#, fuzzy
-#| msgid "Invalid quantity provided"
-msgid "Invalid quantity supplied"
-msgstr "提供的数量无效"
+msgid "Error"
+msgstr ""
-#: InvenTree/conversion.py:141
-#, fuzzy, python-brace-format
-#| msgid "Invalid quantity provided"
-msgid "Invalid quantity supplied ({exc})"
-msgstr "提供的数量无效"
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr "在管理面板中可以找到错误详细信息"
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr "输入日期"
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:121 stock/models.py:2191 stock/models.py:2299
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:999 stock/serializers.py:1098
+#: stock/serializers.py:1259 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
-#: templates/js/translated/part.js:1077
-#: templates/js/translated/purchase_order.js:2179
-#: templates/js/translated/return_order.js:773
+#: templates/js/translated/part.js:1061
+#: templates/js/translated/purchase_order.js:2175
+#: templates/js/translated/return_order.js:769
#: templates/js/translated/sales_order.js:1064
#: templates/js/translated/sales_order.js:1979
-#: templates/js/translated/stock.js:1516 templates/js/translated/stock.js:2398
+#: templates/js/translated/stock.js:1478 templates/js/translated/stock.js:2360
msgid "Notes"
msgstr "备注"
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "值 '{name}' 没有以模式格式显示"
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr "提供的值与所需模式不匹配: "
@@ -108,99 +109,99 @@ msgstr "确认新密码"
msgid "Old password"
msgstr "旧密码"
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr "Email (再次)"
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr "Email 地址确认"
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr "您必须输入相同的 Email 。"
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr "所提供的主要电子邮件地址无效。"
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr "提供的电子邮件域未被核准。"
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr "提供的数量无效"
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr "空序列号字符串"
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr "重复的序列号"
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "无效的组范围: {g}"
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr "组 {g} 超出了允许的数量 ({q})"
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "无效的组序列: {g}"
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr "未找到序列号"
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})"
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr "从这个值中删除 HTML 标签"
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr "连接错误"
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr "服务器响应状态码无效"
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr "发生异常"
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr "服务器响应的内容长度值无效"
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr "图片尺寸过大"
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr "图像下载超过最大尺寸"
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr "远程服务器返回了空响应"
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr "提供的 URL 不是一个有效的图片文件"
@@ -216,254 +217,250 @@ msgstr ""
msgid "Email"
msgstr "电子邮件"
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr "格式不正确"
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr "指定了未知格式密钥"
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr "缺少必需的格式密钥"
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr "引用字段不能为空"
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr "引用必须匹配所需的图案"
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr "参考编号过大"
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr "缺少文件"
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr "缺少外部链接"
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2293
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr "附件"
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr "选择附件"
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2770 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: stock/admin.py:138 templates/js/translated/company.js:1309
+#: stock/admin.py:120 templates/js/translated/company.js:1309
#: templates/js/translated/company.js:1663 templates/js/translated/order.js:351
-#: templates/js/translated/part.js:2451
-#: templates/js/translated/purchase_order.js:2019
-#: templates/js/translated/purchase_order.js:2183
-#: templates/js/translated/return_order.js:777
+#: templates/js/translated/part.js:2430
+#: templates/js/translated/purchase_order.js:2015
+#: templates/js/translated/purchase_order.js:2179
+#: templates/js/translated/return_order.js:773
#: templates/js/translated/sales_order.js:1053
#: templates/js/translated/sales_order.js:1984
msgid "Link"
msgstr "链接"
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:735
msgid "Link to external URL"
msgstr "链接到外部 URL"
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr "注释"
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2229
+#: common/models.py:2230 common/models.py:2443 common/models.py:2444
+#: common/models.py:2700 common/models.py:2701 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:224 plugin/models.py:225
#: report/templates/report/inventree_test_report_base.html:105
-#: templates/js/translated/stock.js:3007
+#: templates/js/translated/stock.js:2958
msgid "User"
msgstr "用户"
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr "上传日期"
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr "文件名不能为空!"
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr "非法的附件目录"
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "文件名包含非法字符 '{c}'"
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr "缺少文件名扩展"
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr "使用此文件名的附件已存在"
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr "重命名文件出错"
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr "选择无效"
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
-#: templates/InvenTree/settings/mixins/urls.html:13
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2429
+#: common/models.py:2877 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:164 templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
#: templates/InvenTree/settings/plugin_settings.html:22
#: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
#: templates/js/translated/company.js:666
#: templates/js/translated/company.js:714
#: templates/js/translated/company.js:903
#: templates/js/translated/company.js:1155
-#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1183
-#: templates/js/translated/part.js:1471 templates/js/translated/part.js:1607
-#: templates/js/translated/part.js:2744 templates/js/translated/stock.js:2687
+#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1167
+#: templates/js/translated/part.js:1455 templates/js/translated/part.js:1591
+#: templates/js/translated/part.js:2723 templates/js/translated/stock.js:2649
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:656 build/models.py:168
+#: InvenTree/models.py:672 build/models.py:168
#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:177
+#: report/models.py:580 report/models.py:624
#: report/templates/report/inventree_build_order_base.html:117
-#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
+#: stock/admin.py:41 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:27
#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
#: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
-#: templates/js/translated/build.js:2121 templates/js/translated/company.js:518
+#: templates/js/translated/build.js:2109 templates/js/translated/company.js:518
#: templates/js/translated/company.js:1320
#: templates/js/translated/company.js:1631 templates/js/translated/index.js:119
-#: templates/js/translated/order.js:298 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1618
-#: templates/js/translated/part.js:1953 templates/js/translated/part.js:2350
-#: templates/js/translated/part.js:2780 templates/js/translated/part.js:2868
-#: templates/js/translated/plugin.js:79
-#: templates/js/translated/purchase_order.js:1685
-#: templates/js/translated/purchase_order.js:1828
-#: templates/js/translated/purchase_order.js:2001
+#: templates/js/translated/order.js:298 templates/js/translated/part.js:1219
+#: templates/js/translated/part.js:1464 templates/js/translated/part.js:1602
+#: templates/js/translated/part.js:1937 templates/js/translated/part.js:2329
+#: templates/js/translated/part.js:2759 templates/js/translated/part.js:2847
+#: templates/js/translated/purchase_order.js:1681
+#: templates/js/translated/purchase_order.js:1824
+#: templates/js/translated/purchase_order.js:1997
#: templates/js/translated/return_order.js:311
#: templates/js/translated/sales_order.js:799
#: templates/js/translated/sales_order.js:1809
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:2028
-#: templates/js/translated/stock.js:2719 templates/js/translated/stock.js:2802
+#: templates/js/translated/stock.js:1457 templates/js/translated/stock.js:1990
+#: templates/js/translated/stock.js:2681 templates/js/translated/stock.js:2753
msgid "Description"
msgstr "描述信息"
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673
msgid "Description (optional)"
msgstr "描述 (可选)"
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr "上级项"
-#: InvenTree/models.py:672 InvenTree/models.py:673
-#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
+#: InvenTree/models.py:688 InvenTree/models.py:689
+#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2690
msgid "Path"
msgstr "路径"
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
#, fuzzy
#| msgid "Add transaction note (optional)"
msgid "Markdown notes (optional)"
msgstr "添加交易备注 (可选)"
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr "条码数据"
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr "第三方条形码数据"
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr "条码哈希"
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr "条码数据的唯一哈希"
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr "发现现有条码"
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr "服务器错误"
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr "服务器记录了一个错误。"
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr "必须是有效数字"
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr "货币"
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
@@ -517,138 +514,138 @@ msgstr "缺少必需的列:'{name}'"
msgid "Duplicate column: '{col}'"
msgstr "复制列: '{col}'"
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:713
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr "URL"
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:714
msgid "URL of remote image file"
msgstr "远程图像文件的 URL"
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:728
msgid "Downloading images from remote URL is not enabled"
msgstr "未启用从远程 URL下载图像"
-#: InvenTree/settings.py:814
+#: InvenTree/settings.py:756
msgid "Czech"
msgstr "捷克语"
-#: InvenTree/settings.py:815
+#: InvenTree/settings.py:757
msgid "Danish"
msgstr "丹麦语"
-#: InvenTree/settings.py:816
+#: InvenTree/settings.py:758
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:817
+#: InvenTree/settings.py:759
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:818
+#: InvenTree/settings.py:760
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:819
+#: InvenTree/settings.py:761
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:820
+#: InvenTree/settings.py:762
msgid "Spanish (Mexican)"
msgstr "西班牙语(墨西哥)"
-#: InvenTree/settings.py:821
+#: InvenTree/settings.py:763
msgid "Farsi / Persian"
msgstr "波斯语"
-#: InvenTree/settings.py:822
+#: InvenTree/settings.py:764
#, fuzzy
#| msgid "Danish"
msgid "Finnish"
msgstr "丹麦语"
-#: InvenTree/settings.py:823
+#: InvenTree/settings.py:765
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:824
+#: InvenTree/settings.py:766
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:825
+#: InvenTree/settings.py:767
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:826
+#: InvenTree/settings.py:768
msgid "Hungarian"
msgstr "匈牙利语"
-#: InvenTree/settings.py:827
+#: InvenTree/settings.py:769
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:828
+#: InvenTree/settings.py:770
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:829
+#: InvenTree/settings.py:771
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:772
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:773
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:774
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:775
msgid "Portuguese"
msgstr "葡萄牙语"
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:776
msgid "Portuguese (Brazilian)"
msgstr "葡萄牙语 (巴西)"
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:777
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:778
msgid "Slovenian"
msgstr "斯洛文尼亚"
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:779
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:780
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:781
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:782
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:783
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:784
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1000
msgid "Background worker check failed"
msgstr "后台工作人员检查失败"
@@ -663,7 +660,7 @@ msgstr "InventTree系统健康检查失败"
#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40
#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167
#: InvenTree/status_codes.py:188 generic/states/tests.py:16
-#: templates/js/translated/table_filters.js:594
+#: templates/js/translated/table_filters.js:558
msgid "Pending"
msgstr "待定"
@@ -697,7 +694,7 @@ msgstr "已退回"
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -732,7 +729,7 @@ msgstr "隔离"
msgid "Legacy stock tracking entry"
msgstr "旧库存跟踪条目"
-#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544
+#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:510
msgid "Stock item created"
msgstr "库存项已创建"
@@ -790,7 +787,7 @@ msgstr "从父项拆分"
msgid "Split child item"
msgstr "拆分子项"
-#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1826
+#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1788
msgid "Merged stock items"
msgstr "合并的库存项目"
@@ -812,7 +809,7 @@ msgstr "生产订单输出已完成"
msgid "Build order output rejected"
msgstr "已创建生产订单输出"
-#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1732
+#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1694
msgid "Consumed by build order"
msgstr "被生产订单消耗"
@@ -834,7 +831,7 @@ msgstr "收到定购单"
msgid "Returned against Return Order"
msgstr "收到定购单"
-#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375
+#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:351
msgid "Sent to customer"
msgstr "发送给客户"
@@ -872,95 +869,95 @@ msgstr ""
msgid "Reject"
msgstr "已拒绝"
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
#, fuzzy
#| msgid "Invalid value"
msgid "Invalid physical unit"
msgstr "无效值"
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr "不是有效的货币代码"
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr "备损值不能为负数"
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr "备损不能超过 100%"
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr "无效的备损值"
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr "编辑用户信息"
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr "设置密码"
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr "密码字段必须相匹配。"
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr "密码错误"
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr "系统信息"
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr "关于 InventTree"
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr "在删除前必须取消生产"
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
-#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
+#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2493
#: templates/js/translated/table_filters.js:190
-#: templates/js/translated/table_filters.js:579
+#: templates/js/translated/table_filters.js:543
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
-#: templates/js/translated/build.js:2514
+#: templates/js/translated/build.js:2502
#: templates/js/translated/table_filters.js:186
#: templates/js/translated/table_filters.js:215
-#: templates/js/translated/table_filters.js:583
+#: templates/js/translated/table_filters.js:547
msgid "Optional"
msgstr "可选项"
-#: build/api.py:283 templates/js/translated/table_filters.js:408
-#: templates/js/translated/table_filters.js:575
+#: build/api.py:289 templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:539
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
-#: templates/js/translated/build.js:2605
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1717
+#: templates/js/translated/build.js:2593
#: templates/js/translated/sales_order.js:1926
-#: templates/js/translated/table_filters.js:567
+#: templates/js/translated/table_filters.js:531
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2534
#: templates/js/translated/index.js:123
-#: templates/js/translated/model_renderers.js:226
-#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
-#: templates/js/translated/part.js:696
-#: templates/js/translated/table_filters.js:340
-#: templates/js/translated/table_filters.js:571
+#: templates/js/translated/model_renderers.js:223
+#: templates/js/translated/part.js:673 templates/js/translated/part.js:675
+#: templates/js/translated/part.js:680
+#: templates/js/translated/table_filters.js:316
+#: templates/js/translated/table_filters.js:535
msgid "Available"
msgstr "空闲"
@@ -969,7 +966,7 @@ msgstr "空闲"
#: report/templates/report/inventree_build_order_base.html:105
#: templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
-#: templates/js/translated/build.js:961 templates/js/translated/stock.js:2863
+#: templates/js/translated/build.js:953 templates/js/translated/stock.js:2814
msgid "Build Order"
msgstr "生产订单"
@@ -992,18 +989,18 @@ msgstr "上级生产选项无效"
msgid "Build Order Reference"
msgstr "相关生产订单"
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1737 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
#: report/templates/report/inventree_so_report_base.html:28
#: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973
-#: templates/js/translated/build.js:2497 templates/js/translated/order.js:291
+#: templates/js/translated/build.js:2485 templates/js/translated/order.js:291
#: templates/js/translated/pricing.js:386
-#: templates/js/translated/purchase_order.js:2044
-#: templates/js/translated/return_order.js:726
+#: templates/js/translated/purchase_order.js:2040
+#: templates/js/translated/return_order.js:722
#: templates/js/translated/sales_order.js:1815
msgid "Reference"
msgstr "引用"
@@ -1024,13 +1021,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr "此次生产匹配的订单"
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:958 part/serializers.py:1373
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1041,7 +1038,7 @@ msgstr "此次生产匹配的订单"
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1049,28 +1046,28 @@ msgstr "此次生产匹配的订单"
#: templates/email/overdue_build_order.html:16
#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
-#: templates/js/translated/build.js:1293 templates/js/translated/build.js:1724
-#: templates/js/translated/build.js:2144 templates/js/translated/build.js:2317
+#: templates/js/translated/build.js:1285 templates/js/translated/build.js:1716
+#: templates/js/translated/build.js:2132 templates/js/translated/build.js:2305
#: templates/js/translated/company.js:348
#: templates/js/translated/company.js:1106
#: templates/js/translated/company.js:1261
#: templates/js/translated/company.js:1549 templates/js/translated/index.js:109
-#: templates/js/translated/part.js:1938 templates/js/translated/part.js:2010
-#: templates/js/translated/part.js:2319 templates/js/translated/pricing.js:369
+#: templates/js/translated/part.js:1922 templates/js/translated/part.js:1994
+#: templates/js/translated/part.js:2298 templates/js/translated/pricing.js:369
#: templates/js/translated/purchase_order.js:757
#: templates/js/translated/purchase_order.js:1289
-#: templates/js/translated/purchase_order.js:1827
-#: templates/js/translated/purchase_order.js:1986
+#: templates/js/translated/purchase_order.js:1823
+#: templates/js/translated/purchase_order.js:1982
#: templates/js/translated/return_order.js:536
-#: templates/js/translated/return_order.js:707
+#: templates/js/translated/return_order.js:703
#: templates/js/translated/sales_order.js:297
#: templates/js/translated/sales_order.js:1194
#: templates/js/translated/sales_order.js:1595
#: templates/js/translated/sales_order.js:1793
-#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842
-#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1967
-#: templates/js/translated/stock.js:2828 templates/js/translated/stock.js:3061
-#: templates/js/translated/stock.js:3202
+#: templates/js/translated/stock.js:642 templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:1020 templates/js/translated/stock.js:1929
+#: templates/js/translated/stock.js:2779 templates/js/translated/stock.js:3012
+#: templates/js/translated/stock.js:3149
msgid "Part"
msgstr "商品"
@@ -1086,8 +1083,8 @@ msgstr "相关销售订单"
msgid "SalesOrder to which this build is allocated"
msgstr "此次生产匹配的销售订单"
-#: build/models.py:207 build/serializers.py:942
-#: templates/js/translated/build.js:1712
+#: build/models.py:207 build/serializers.py:946
+#: templates/js/translated/build.js:1704
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
msgstr "来源地点"
@@ -1128,17 +1125,17 @@ msgstr "生产状态"
msgid "Build status code"
msgstr "生产状态代码"
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:739 stock/serializers.py:1223
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr "批量代码"
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1153,8 +1150,8 @@ msgstr "预计完成日期"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
-#: build/models.py:265 order/models.py:413 order/models.py:1765
-#: templates/js/translated/build.js:2229
+#: build/models.py:265 order/models.py:422 order/models.py:1780
+#: templates/js/translated/build.js:2217
msgid "Completion Date"
msgstr "完成日期:"
@@ -1162,7 +1159,7 @@ msgstr "完成日期:"
msgid "completed by"
msgstr "完成人"
-#: build/models.py:279 templates/js/translated/build.js:2189
+#: build/models.py:279 templates/js/translated/build.js:2177
msgid "Issued by"
msgstr "发布者"
@@ -1171,16 +1168,16 @@ msgid "User who issued this build order"
msgstr "发布此生产订单的用户"
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2201
-#: templates/js/translated/purchase_order.js:1742
+#: templates/js/translated/build.js:2189
+#: templates/js/translated/purchase_order.js:1738
#: templates/js/translated/return_order.js:356
-#: templates/js/translated/table_filters.js:527
+#: templates/js/translated/table_filters.js:491
msgid "Responsible"
msgstr "责任人"
@@ -1194,7 +1191,7 @@ msgstr "构建此订单的用户或组"
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:733
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1209,9 +1206,9 @@ msgid "Priority of this build order"
msgstr "此构建订单的优先级"
#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
-#: templates/js/translated/build.js:2126
-#: templates/js/translated/purchase_order.js:1689
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
+#: templates/js/translated/build.js:2114
+#: templates/js/translated/purchase_order.js:1685
#: templates/js/translated/return_order.js:315
#: templates/js/translated/sales_order.js:803
#: templates/js/translated/table_filters.js:48
@@ -1227,52 +1224,52 @@ msgstr "商品二维码"
msgid "Project code for this build order"
msgstr "此构建订单的优先级"
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr "生产订单 {build} 已完成"
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr "生产订单已完成"
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr "未指定生产产出"
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr "生产产出已完成"
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr "生产产出与订单不匹配"
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1215 part/serializers.py:1536
+#: stock/models.py:593 stock/models.py:1387 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr "数量必须大于0"
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
#, fuzzy
#| msgid "Quantity must be greater than zero"
msgid "Quantity cannot be greater than the output quantity"
msgstr "数量必须大于0"
-#: build/models.py:1259
+#: build/models.py:1274
#, fuzzy
#| msgid "Build Notes"
msgid "Build object"
msgstr "生产备注"
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2251
+#: order/models.py:1086 order/models.py:1658 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1282,390 +1279,394 @@ msgstr "生产备注"
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:103 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:510
-#: templates/js/translated/build.js:726 templates/js/translated/build.js:1350
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2339
+#: templates/js/translated/build.js:722 templates/js/translated/build.js:1342
+#: templates/js/translated/build.js:1719 templates/js/translated/build.js:2327
#: templates/js/translated/company.js:1808
-#: templates/js/translated/model_renderers.js:228
-#: templates/js/translated/order.js:304 templates/js/translated/part.js:958
-#: templates/js/translated/part.js:1808 templates/js/translated/part.js:3305
+#: templates/js/translated/model_renderers.js:225
+#: templates/js/translated/order.js:304 templates/js/translated/part.js:942
+#: templates/js/translated/part.js:1792 templates/js/translated/part.js:3284
#: templates/js/translated/pricing.js:381
#: templates/js/translated/pricing.js:474
#: templates/js/translated/pricing.js:522
#: templates/js/translated/pricing.js:616
#: templates/js/translated/purchase_order.js:760
-#: templates/js/translated/purchase_order.js:1831
-#: templates/js/translated/purchase_order.js:2050
+#: templates/js/translated/purchase_order.js:1827
+#: templates/js/translated/purchase_order.js:2046
#: templates/js/translated/sales_order.js:314
#: templates/js/translated/sales_order.js:1196
#: templates/js/translated/sales_order.js:1515
#: templates/js/translated/sales_order.js:1605
#: templates/js/translated/sales_order.js:1695
#: templates/js/translated/sales_order.js:1821
-#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702
-#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:2992
-#: templates/js/translated/stock.js:3073
+#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:668
+#: templates/js/translated/stock.js:839 templates/js/translated/stock.js:2943
+#: templates/js/translated/stock.js:3024
msgid "Quantity"
msgstr "数量"
-#: build/models.py:1274
+#: build/models.py:1289
#, fuzzy
#| msgid "Stock required for build order"
msgid "Required quantity for build order"
msgstr "生产订单所需的库存"
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "生产项必须指定生产产出,因为主部件已经被标记为可追踪的"
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})"
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1614
msgid "Stock item is over-allocated"
msgstr "库存物品分配过度!"
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1617
msgid "Allocation quantity must be greater than zero"
msgstr "分配数量必须大于0"
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr "序列化库存的数量必须是 1"
-#: build/models.py:1446
+#: build/models.py:1463
#, fuzzy
#| msgid "Selected stock item not found in BOM"
msgid "Selected stock item does not match BOM line"
msgstr "在BOM中找不到选定的库存项"
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:930
+#: stock/serializers.py:1056 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
-#: templates/js/translated/build.js:1726
+#: templates/js/translated/build.js:1718
#: templates/js/translated/sales_order.js:298
#: templates/js/translated/sales_order.js:1195
#: templates/js/translated/sales_order.js:1496
#: templates/js/translated/sales_order.js:1501
#: templates/js/translated/sales_order.js:1602
#: templates/js/translated/sales_order.js:1689
-#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843
-#: templates/js/translated/stock.js:2948
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:809
+#: templates/js/translated/stock.js:2899
msgid "Stock Item"
msgstr "库存项"
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr "源库存项"
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr "分配到生产的数量"
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr "安装到"
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr "目标库存项"
-#: build/serializers.py:155 build/serializers.py:824
-#: templates/js/translated/build.js:1303
+#: build/serializers.py:156 build/serializers.py:828
+#: templates/js/translated/build.js:1295
msgid "Build Output"
msgstr "生产产出"
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr "生产产出与对应生产不匹配"
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr "产出部件与生产订单部件不匹配"
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr "此生产产出已经完成"
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr "生产产出未被完成分配"
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr "对于可追踪的部件,需要整数型数值"
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr "需要整数型数值,因为BOM包含可追踪的部件"
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
-#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
+#: templates/js/translated/stock.js:333 templates/js/translated/stock.js:531
msgid "Serial Numbers"
msgstr "序列号"
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr "输入生产产出的序列号"
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr "自动分配序列号"
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr "自动为所需项分配对应的序列号"
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:736
msgid "The following serial numbers already exist or are invalid"
msgstr "以下序列号已存在或无效"
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr "必须提供生产产出列表"
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:970
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1091 stock/serializers.py:1362
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
-#: templates/js/translated/build.js:2354
+#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:980
+#: templates/js/translated/build.js:2342
#: templates/js/translated/purchase_order.js:1163
#: templates/js/translated/purchase_order.js:1253
#: templates/js/translated/sales_order.js:1508
#: templates/js/translated/sales_order.js:1616
#: templates/js/translated/sales_order.js:1624
#: templates/js/translated/sales_order.js:1703
-#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844
-#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2171
-#: templates/js/translated/stock.js:2842
+#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:810
+#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:2133
+#: templates/js/translated/stock.js:2793
msgid "Location"
msgstr "地点"
-#: build/serializers.py:422
+#: build/serializers.py:424
#, fuzzy
#| msgid "Stock item created"
msgid "Stock location for scrapped outputs"
msgstr "库存项已创建"
-#: build/serializers.py:428
+#: build/serializers.py:430
#, fuzzy
#| msgid "Stock Locations"
msgid "Discard Allocations"
msgstr "仓储地点"
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
#, fuzzy
#| msgid "Location for completed build outputs"
msgid "Reason for scrapping build output(s)"
msgstr "已完成生产产出的仓储地点"
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr "已完成生产产出的仓储地点"
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1763 order/serializers.py:530 stock/admin.py:106
+#: stock/serializers.py:703 stock/serializers.py:1230
#: stock/templates/stock/item_base.html:428
-#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
+#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2161
#: templates/js/translated/purchase_order.js:1293
-#: templates/js/translated/purchase_order.js:1701
+#: templates/js/translated/purchase_order.js:1697
#: templates/js/translated/return_order.js:328
#: templates/js/translated/sales_order.js:816
-#: templates/js/translated/stock.js:2146 templates/js/translated/stock.js:2966
-#: templates/js/translated/stock.js:3089
+#: templates/js/translated/stock.js:2108 templates/js/translated/stock.js:2917
+#: templates/js/translated/stock.js:3040
msgid "Status"
msgstr "状态"
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr "接受不完整的分配"
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr "如果库存尚未完成分配,完成产出"
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr "移除已分配的库存"
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr "减去已经分配至此生产的库存"
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr "移除未完成的产出"
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr "删除所有未完成的生产产出"
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr "接受此构建订单所消耗的内容"
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr "在完成此构建订单前取消分配"
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr "超出分配的库存"
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr "你想如何处理分配给构建订单的额外库存物品"
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr "一些库存项已被过度分配"
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr "接受未分配的"
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "接受库存项未被完成分配至此生产订单"
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr "所需库存尚未完全分配"
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr "接受未完成"
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr "接受所需的生产产出未完成"
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr "所需生产数量尚未完成"
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr "生产订单有未完成的产出"
-#: build/serializers.py:718
+#: build/serializers.py:722
#, fuzzy
#| msgid "Build actions"
msgid "Build Line"
msgstr "生产操作"
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr "生产产出"
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr "生产产出必须指向相同的生产"
-#: build/serializers.py:772
+#: build/serializers.py:776
#, fuzzy
#| msgid "Delete parameters"
msgid "Build Line Item"
msgstr "删除参数"
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part 必须与生产订单指向相同的部件"
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:943
msgid "Item must be in stock"
msgstr "项目必须在库存中"
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "可用量 ({q}) 超出了限制"
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr "对于被追踪的部件的分配,必须指定生产产出"
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "对于未被追踪的部件,无法指定生产产出"
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr "此库存项已被分配至此生产产出"
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr "必须提供分配的项"
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr "部件来源的仓储地点(留空则可来源于任何仓储地点)"
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr "排除地点"
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr "从该选定的仓储地点排除库存项"
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr "可互换的库存"
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr "多处地点的库存项可以互换使用"
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr "可替换的库存"
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr "允许分配可替换的部件"
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr "可选项目"
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr "分配可选的BOM项目来建立订单"
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr "生产订单所需的库存"
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr "超时构建顺序"
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr "生成订单 {bo} 现在已过期"
@@ -1784,16 +1785,16 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr "库存尚未被完全分配到此构建订单"
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2221 templates/js/translated/part.js:1826
-#: templates/js/translated/purchase_order.js:1718
-#: templates/js/translated/purchase_order.js:2126
+#: templates/js/translated/build.js:2209 templates/js/translated/part.js:1810
+#: templates/js/translated/purchase_order.js:1714
+#: templates/js/translated/purchase_order.js:2122
#: templates/js/translated/return_order.js:344
-#: templates/js/translated/return_order.js:748
+#: templates/js/translated/return_order.js:744
#: templates/js/translated/sales_order.js:832
#: templates/js/translated/sales_order.js:1864
msgid "Target Date"
@@ -1810,9 +1811,9 @@ msgstr "此次生产的截止日期为 %(target)s"
#: order/templates/order/return_order_base.html:118
#: order/templates/order/sales_order_base.html:123
#: templates/js/translated/table_filters.js:98
-#: templates/js/translated/table_filters.js:520
-#: templates/js/translated/table_filters.js:622
-#: templates/js/translated/table_filters.js:663
+#: templates/js/translated/table_filters.js:484
+#: templates/js/translated/table_filters.js:586
+#: templates/js/translated/table_filters.js:627
msgid "Overdue"
msgstr "逾期"
@@ -1822,8 +1823,8 @@ msgid "Completed Outputs"
msgstr "已完成输出"
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1833,7 +1834,7 @@ msgstr "已完成输出"
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:766
#: templates/js/translated/sales_order.js:989
-#: templates/js/translated/stock.js:2895
+#: templates/js/translated/stock.js:2846
msgid "Sales Order"
msgstr "销售订单"
@@ -1845,7 +1846,7 @@ msgid "Issued By"
msgstr "发布者"
#: build/templates/build/build_base.html:212
-#: build/templates/build/detail.html:94 templates/js/translated/build.js:2138
+#: build/templates/build/detail.html:94 templates/js/translated/build.js:2126
msgid "Priority"
msgstr "优先级"
@@ -1877,8 +1878,8 @@ msgstr "库存来源"
msgid "Stock can be taken from any available location."
msgstr "库存可以从任何可用的地点获得。"
-#: build/templates/build/detail.html:49 order/models.py:1220
-#: templates/js/translated/purchase_order.js:2168
+#: build/templates/build/detail.html:49 order/models.py:1235
+#: templates/js/translated/purchase_order.js:2164
msgid "Destination"
msgstr "目的地"
@@ -1890,15 +1891,15 @@ msgstr "目标位置未指定"
msgid "Allocated Parts"
msgstr "已分配的部件"
-#: build/templates/build/detail.html:80 stock/admin.py:123
+#: build/templates/build/detail.html:80 stock/admin.py:105
#: stock/templates/stock/item_base.html:163
-#: templates/js/translated/build.js:1361
-#: templates/js/translated/model_renderers.js:233
+#: templates/js/translated/build.js:1353
+#: templates/js/translated/model_renderers.js:230
#: templates/js/translated/purchase_order.js:1259
-#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2160
-#: templates/js/translated/stock.js:3096
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:404
+#: templates/js/translated/stock.js:1092 templates/js/translated/stock.js:2122
+#: templates/js/translated/stock.js:3047
+#: templates/js/translated/table_filters.js:289
+#: templates/js/translated/table_filters.js:380
msgid "Batch"
msgstr "批量"
@@ -1906,7 +1907,7 @@ msgstr "批量"
#: order/templates/order/order_base.html:173
#: order/templates/order/return_order_base.html:152
#: order/templates/order/sales_order_base.html:187
-#: templates/js/translated/build.js:2181
+#: templates/js/translated/build.js:2169
msgid "Created"
msgstr "已创建"
@@ -1916,7 +1917,7 @@ msgstr "无预计日期"
#: build/templates/build/detail.html:149
#: order/templates/order/sales_order_base.html:203
-#: templates/js/translated/table_filters.js:685
+#: templates/js/translated/table_filters.js:649
msgid "Completed"
msgstr "已完成"
@@ -2072,11 +2073,11 @@ msgstr "{name.title()} 文件"
msgid "Select {name} file to upload"
msgstr "选择 {name} 文件上传"
-#: common/models.py:71
+#: common/models.py:70
msgid "Updated"
msgstr "已更新"
-#: common/models.py:72
+#: common/models.py:71
msgid "Timestamp of last update"
msgstr "最后一次更新时间"
@@ -2090,1507 +2091,1472 @@ msgstr ""
msgid "Project description"
msgstr "商品描述"
-#: common/models.py:640
+#: common/models.py:595
msgid "Settings key (must be unique - case insensitive)"
msgstr "设置键值(必须是唯一的 - 大小写不敏感)"
-#: common/models.py:642
+#: common/models.py:597
msgid "Settings value"
msgstr "设定值"
-#: common/models.py:683
+#: common/models.py:638
msgid "Chosen value is not a valid option"
msgstr "选择的值不是一个有效的选项"
-#: common/models.py:700
+#: common/models.py:655
msgid "Value must be a boolean value"
msgstr "值必须是布尔量"
-#: common/models.py:711
+#: common/models.py:666
msgid "Value must be an integer value"
msgstr "值必须为整数"
-#: common/models.py:750
+#: common/models.py:705
msgid "Key string must be unique"
msgstr "关键字必须是唯一的"
-#: common/models.py:955
+#: common/models.py:912
msgid "No group"
msgstr "无群组"
-#: common/models.py:980
+#: common/models.py:937
msgid "An empty domain is not allowed."
msgstr "不允许空域。"
-#: common/models.py:982
+#: common/models.py:939
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "无效的域名: {domain}"
-#: common/models.py:994
-#, fuzzy
-#| msgid "Subcategories"
-msgid "No plugin"
-msgstr "子类别"
-
-#: common/models.py:1060
+#: common/models.py:996
msgid "Restart required"
msgstr "需要重启"
-#: common/models.py:1061
+#: common/models.py:997
msgid "A setting has been changed which requires a server restart"
msgstr "设置已更改,需要服务器重启"
-#: common/models.py:1068
-#, fuzzy
-#| msgid "Printing Actions"
-msgid "Pending migrations"
-msgstr "打印操作"
-
-#: common/models.py:1069
-msgid "Number of pending database migrations"
-msgstr ""
-
-#: common/models.py:1075
+#: common/models.py:1004
msgid "Server Instance Name"
msgstr "服务器实例名称"
-#: common/models.py:1077
+#: common/models.py:1006
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1011
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1012
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1018
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1019
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1025 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr "公司名称"
-#: common/models.py:1097
+#: common/models.py:1026
msgid "Internal company name"
msgstr "内部公司名称"
-#: common/models.py:1102
+#: common/models.py:1031
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1032
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1039
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1040
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
-msgid "Currency Update Interval"
-msgstr ""
-
-#: common/models.py:1119
-msgid "How often to update exchange rates (set to zero to disable)"
-msgstr ""
-
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
-msgid "days"
-msgstr "天"
-
-#: common/models.py:1129
-msgid "Currency Update Plugin"
-msgstr ""
-
-#: common/models.py:1130
-msgid "Currency update plugin to use"
-msgstr ""
-
-#: common/models.py:1136
+#: common/models.py:1047
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1048
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1054
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1055
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1066
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1067
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1072
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1073
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1079
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1080
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1089
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1090
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1096 common/models.py:1114 common/models.py:1121
+#: common/models.py:1132 common/models.py:1143 common/models.py:1374
+#: common/models.py:1398 common/models.py:1521 common/models.py:1777
+msgid "days"
+msgstr "天"
+
+#: common/models.py:1100
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1101
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1107
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1108
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1118
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1119
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1129
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1130
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1140
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1141
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1151 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
-#, fuzzy
-#| msgid "Enable barcode scanner support"
-msgid "Enable barcode scanner support in the web interface"
+#: common/models.py:1152
+msgid "Enable barcode scanner support"
msgstr "启用条形码扫描支持"
-#: common/models.py:1247
+#: common/models.py:1158
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1159
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1169
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1170
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1176
#, fuzzy
#| msgid "Part description"
msgid "Part Revisions"
msgstr "商品描述"
-#: common/models.py:1266
+#: common/models.py:1177
#, fuzzy
#| msgid "Enable internal prices for parts"
msgid "Enable revision field for Part"
msgstr "启用内部商品价格"
-#: common/models.py:1272
+#: common/models.py:1183
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1184
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1188
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1189
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1195
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1196
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1202
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1203
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1209
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1210
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1216
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1217
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1223
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1224
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:763
+#: common/models.py:1230 part/admin.py:55 part/models.py:3621
+#: report/models.py:170 templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:727
msgid "Template"
msgstr "模板"
-#: common/models.py:1320
+#: common/models.py:1231
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
-#: templates/js/translated/table_filters.js:330
-#: templates/js/translated/table_filters.js:717
+#: common/models.py:1237 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
+#: templates/js/translated/table_filters.js:306
+#: templates/js/translated/table_filters.js:681
msgid "Assembly"
msgstr "组装"
-#: common/models.py:1327
+#: common/models.py:1238
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
-#: templates/js/translated/table_filters.js:725
+#: common/models.py:1244 part/admin.py:52 part/models.py:1007
+#: templates/js/translated/table_filters.js:689
msgid "Component"
msgstr "组件"
-#: common/models.py:1334
+#: common/models.py:1245
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1251 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr "可购买"
-#: common/models.py:1341
+#: common/models.py:1252
msgid "Parts are purchaseable by default"
msgstr "商品默认可购买"
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
-#: templates/js/translated/table_filters.js:751
+#: common/models.py:1258 part/admin.py:54 part/models.py:1023
+#: templates/js/translated/table_filters.js:715
msgid "Salable"
msgstr "可销售"
-#: common/models.py:1348
+#: common/models.py:1259
msgid "Parts are salable by default"
msgstr "商品默认可销售"
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1265 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:767
+#: templates/js/translated/table_filters.js:731
msgid "Trackable"
msgstr "可追踪"
-#: common/models.py:1355
+#: common/models.py:1266
msgid "Parts are trackable by default"
msgstr "商品默认可跟踪"
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1272 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:771
+#: templates/js/translated/table_filters.js:735
msgid "Virtual"
msgstr "虚拟"
-#: common/models.py:1362
+#: common/models.py:1273
msgid "Parts are virtual by default"
msgstr "商品默认是虚拟的"
-#: common/models.py:1368
+#: common/models.py:1279
msgid "Show Import in Views"
msgstr "视图中显示导入"
-#: common/models.py:1369
+#: common/models.py:1280
msgid "Display the import wizard in some part views"
msgstr "在一些商品视图中显示导入向导"
-#: common/models.py:1375
+#: common/models.py:1286
msgid "Show related parts"
msgstr "显示相关商品"
-#: common/models.py:1376
+#: common/models.py:1287
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1293
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1294
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1300 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1301
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1307
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1308
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1315
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1316
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1321
#, fuzzy
#| msgid "Parameter units"
msgid "Enforce Parameter Units"
msgstr "参数单位"
-#: common/models.py:1411
+#: common/models.py:1322
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1328
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1329
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1339
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1340
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1350
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1351
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1357
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1358
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1364
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1365
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1371
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1372
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1382
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1383
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1389
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1390
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1396
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1397
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1407
msgid "Internal Prices"
msgstr "内部价格"
-#: common/models.py:1497
+#: common/models.py:1408
msgid "Enable internal prices for parts"
msgstr "启用内部商品价格"
-#: common/models.py:1503
+#: common/models.py:1414
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1415
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1421
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1422
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1428
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1429
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1438
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1439
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1445 templates/stats.html:25
msgid "Debug Mode"
msgstr "调试模式"
-#: common/models.py:1535
+#: common/models.py:1446
msgid "Generate reports in debug mode (HTML output)"
msgstr "在调试模式生成报告(HTML输出)"
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1452
msgid "Page Size"
msgstr "页面大小"
-#: common/models.py:1542
+#: common/models.py:1453
msgid "Default page size for PDF reports"
msgstr "PDF 报表默认页面大小"
-#: common/models.py:1548
+#: common/models.py:1463
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1464
msgid "Enable generation of test reports"
msgstr "启用生成测试报表"
-#: common/models.py:1555
+#: common/models.py:1470
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1471
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1477
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1478
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1484
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1485
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1491
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1492
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1498
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1499
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1504
msgid "Stock Expiry"
msgstr "库存到期"
-#: common/models.py:1590
+#: common/models.py:1505
msgid "Enable stock expiry functionality"
msgstr "启用库存到期功能"
-#: common/models.py:1596
+#: common/models.py:1511
msgid "Sell Expired Stock"
msgstr "销售过期库存"
-#: common/models.py:1597
+#: common/models.py:1512
msgid "Allow sale of expired stock"
msgstr "允许销售过期库存"
-#: common/models.py:1603
+#: common/models.py:1518
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1519
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1526
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1527
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1533
msgid "Stock Ownership Control"
msgstr "库存所有权控制"
-#: common/models.py:1619
+#: common/models.py:1534
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1540
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1541
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1546
#, fuzzy
#| msgid "Select Stock Items"
msgid "Show Installed Stock Items"
msgstr "选择库存项"
-#: common/models.py:1632
+#: common/models.py:1547
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1553
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1554
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1560
#, fuzzy
#| msgid "Sales Orders"
msgid "Enable Return Orders"
msgstr "销售订单"
-#: common/models.py:1646
+#: common/models.py:1561
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1567
#, fuzzy
#| msgid "Build Order Reference"
msgid "Return Order Reference Pattern"
msgstr "相关生产订单"
-#: common/models.py:1653
+#: common/models.py:1568
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1574
#, fuzzy
#| msgid "Complete Build Order"
msgid "Edit Completed Return Orders"
msgstr "生产订单完成"
-#: common/models.py:1660
+#: common/models.py:1575
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1581
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1582
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1588
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1589
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1595
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1596
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1602
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1603
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1609
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1610
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1617
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1618
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1624
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1625
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1631
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1632
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1638
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1639
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1645
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1646
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1652
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1653
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1659
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1660
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1666
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1667
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1673
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1674
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1680
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1681
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1687
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1688
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1694
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1695
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1703
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1704
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1711
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1712
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1719
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1720
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1727
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1728
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1735
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1736
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1743
#, fuzzy
#| msgid "Sales Orders"
msgid "Enable project codes"
msgstr "销售订单"
-#: common/models.py:1829
+#: common/models.py:1744
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1750
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1751
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1757
#, fuzzy
#| msgid "Exclude Location"
msgid "Exclude External Locations"
msgstr "排除地点"
-#: common/models.py:1843
+#: common/models.py:1758
#, fuzzy
#| msgid "Exclude stock items from this selected location"
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "从该选定的仓储地点排除库存项"
-#: common/models.py:1849
+#: common/models.py:1764
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1765
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1774
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1775
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1792 common/models.py:2222
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1833
#, fuzzy
#| msgid "Build to allocate parts"
msgid "Hide inactive parts"
msgstr "生产以分配部件"
-#: common/models.py:1918
+#: common/models.py:1834
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1840
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1841
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1847
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1848
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1854
msgid "Show latest parts"
msgstr "显示最近商品"
-#: common/models.py:1939
+#: common/models.py:1855
msgid "Show latest parts on the homepage"
msgstr "在主页上显示最近商品"
-#: common/models.py:1945
+#: common/models.py:1861
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1862
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1868
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1869
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1875
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1876
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1882
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1883
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1889
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1890
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1896
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1897
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1903
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:1904
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:1910
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:1911
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:1917
msgid "Show overdue builds"
msgstr "显示逾期生产"
-#: common/models.py:2002
+#: common/models.py:1918
msgid "Show overdue builds on the homepage"
msgstr "在主页上显示逾期的生产"
-#: common/models.py:2008
+#: common/models.py:1924
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:1925
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:1931
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:1932
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:1938
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:1939
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:1945
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:1946
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:1952
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:1953
#, fuzzy
#| msgid "Show latest parts on the homepage"
msgid "Show pending SO shipments on the homepage"
msgstr "在主页上显示最近商品"
-#: common/models.py:2043
+#: common/models.py:1959
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:1960
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:1966
msgid "Inline label display"
msgstr "内嵌标签显示"
-#: common/models.py:2051
+#: common/models.py:1967
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载"
-#: common/models.py:2057
+#: common/models.py:1973
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:1974
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:1980
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:1981
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载"
-#: common/models.py:2071
+#: common/models.py:1987
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:1988
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:1994
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:1995
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2001
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2002
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2008
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2009
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2015
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2016
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2022
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2023
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2029
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2030
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2036
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2037
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2043
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2044
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2050
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2051
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2057
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2058
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2064
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2065
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2071
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2072
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2078
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2079
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2085
#, fuzzy
#| msgid "Purchase Orders"
msgid "Search Return Orders"
msgstr "采购订单"
-#: common/models.py:2170
+#: common/models.py:2086
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2092
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2093
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2099
msgid "Search Preview Results"
msgstr "搜索预览结果"
-#: common/models.py:2184
+#: common/models.py:2100
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2106
#, fuzzy
#| msgid "Search"
msgid "Regex Search"
msgstr "搜索"
-#: common/models.py:2191
+#: common/models.py:2107
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2113
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2114
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2120
msgid "Show Quantity in Forms"
msgstr "在表格中显示数量"
-#: common/models.py:2205
+#: common/models.py:2121
msgid "Display available part quantity in some forms"
msgstr "在某些表格中显示可用的商品数量"
-#: common/models.py:2211
+#: common/models.py:2127
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2128
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2134
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2135
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2141
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2142
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2156 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2157
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2163 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2164
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2170
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2171
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2180
#, fuzzy
#| msgid "Select Label Template"
msgid "Default part label template"
msgstr "选择标签模板"
-#: common/models.py:2265
+#: common/models.py:2181
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2189
#, fuzzy
#| msgid "stock items selected"
msgid "Default stock item template"
msgstr "已选择库存项"
-#: common/models.py:2274
+#: common/models.py:2190
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2198
#, fuzzy
#| msgid "No stock location set"
msgid "Default stock location label template"
msgstr "未设置仓储地点"
-#: common/models.py:2283
+#: common/models.py:2199
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2207
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2208
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2252
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
-#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
+#: common/models.py:2259 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1952
+#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1864
#: templates/js/translated/pricing.js:621
-#: templates/js/translated/return_order.js:738
+#: templates/js/translated/return_order.js:734
msgid "Price"
msgstr "价格"
-#: common/models.py:2344
+#: common/models.py:2260
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2420 common/models.py:2598
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2421
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2430
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2435 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
-#: templates/js/translated/table_filters.js:488
-#: templates/js/translated/table_filters.js:516
-#: templates/js/translated/table_filters.js:712
+#: templates/js/translated/table_filters.js:464
+#: templates/js/translated/table_filters.js:480
+#: templates/js/translated/table_filters.js:676
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2436
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2450
msgid "Token"
msgstr "令牌"
-#: common/models.py:2534
+#: common/models.py:2451
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2458
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2459
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2565
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2566
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2574
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2575
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2582
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2583
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2589
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2590
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2599
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2604
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2605
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2759
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2765 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2775 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
-#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
+#: common/models.py:2780 templates/InvenTree/settings/plugin_settings.html:32
+#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:106
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2785 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2790
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2791
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2811 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3600,68 +3566,68 @@ msgstr ""
msgid "Image"
msgstr "图片"
-#: common/models.py:2894
+#: common/models.py:2812
#, fuzzy
#| msgid "Image"
msgid "Image file"
msgstr "图片"
-#: common/models.py:2937
+#: common/models.py:2856
#, fuzzy
#| msgid "Must be a valid number"
msgid "Unit name must be a valid identifier"
msgstr "必须是有效数字"
-#: common/models.py:2959
+#: common/models.py:2878
#, fuzzy
#| msgid "Part name"
msgid "Unit name"
msgstr "商品名称"
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2884 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2885
#, fuzzy
#| msgid "Optional Items"
msgid "Optional unit symbol"
msgstr "可选项目"
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2891 templates/InvenTree/settings/settings_staff_js.html:71
#, fuzzy
#| msgid "Destination"
msgid "Definition"
msgstr "目的地"
-#: common/models.py:2973
+#: common/models.py:2892
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
#, fuzzy
#| msgid "Received against purchase order"
msgid "Items have been received against a return order"
msgstr "收到定购单"
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3692,7 +3658,7 @@ msgstr "字段匹配失败"
msgid "Parts imported"
msgstr "已导入商品"
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3734,7 +3700,7 @@ msgid "Contact email address"
msgstr "联系人电子邮件"
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3776,321 +3742,321 @@ msgstr "该公司制造商品吗?"
msgid "Default currency used for this company"
msgstr "该公司使用的默认货币"
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr "公司"
-#: company/models.py:334
+#: company/models.py:339
#, fuzzy
#| msgid "Delete Company"
msgid "Select company"
msgstr "删除该公司"
-#: company/models.py:337
+#: company/models.py:342
#, fuzzy
#| msgid "Address"
msgid "Address title"
msgstr "地址"
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
#, fuzzy
#| msgid "Company address"
msgid "Primary address"
msgstr "公司地址"
-#: company/models.py:343
+#: company/models.py:348
#, fuzzy
#| msgid "Contact email address"
msgid "Set as primary address"
msgstr "联系人电子邮件"
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
-#, fuzzy
-#| msgid "Address"
-msgid "Address line 1"
-msgstr "地址"
-
-#: company/models.py:351 templates/js/translated/company.js:905
-#: templates/js/translated/company.js:967
-msgid "Line 2"
-msgstr ""
-
#: company/models.py:352
#, fuzzy
#| msgid "Address"
+msgid "Address line 1"
+msgstr "地址"
+
+#: company/models.py:356 templates/js/translated/company.js:905
+#: templates/js/translated/company.js:967
+msgid "Line 2"
+msgstr ""
+
+#: company/models.py:357
+#, fuzzy
+#| msgid "Address"
msgid "Address line 2"
msgstr "地址"
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
#, fuzzy
#| msgid "Address"
msgid "Address country"
msgstr "地址"
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
#, fuzzy
#| msgid "Internal company name"
msgid "Internal shipping notes"
msgstr "内部公司名称"
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
#, fuzzy
#| msgid "Description (optional)"
msgid "Link to address information (external)"
msgstr "描述 (可选)"
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:675
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr "选择商品"
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:438
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
#: templates/js/translated/company.js:1286
#: templates/js/translated/company.js:1601
-#: templates/js/translated/table_filters.js:792
+#: templates/js/translated/table_filters.js:756
msgid "Manufacturer"
msgstr "制造商"
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr "选择制造商"
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:444
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
-#: templates/js/translated/company.js:1620 templates/js/translated/part.js:1797
-#: templates/js/translated/purchase_order.js:1830
-#: templates/js/translated/purchase_order.js:2032
+#: templates/js/translated/company.js:1620 templates/js/translated/part.js:1781
+#: templates/js/translated/purchase_order.js:1826
+#: templates/js/translated/purchase_order.js:2028
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr "制造商商品编号"
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr "制造商商品描述"
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr "制造商商品"
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr "参数名称"
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
-#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
-#: templates/js/translated/stock.js:1502
+#: stock/models.py:2286 templates/js/translated/company.js:1156
+#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1473
+#: templates/js/translated/stock.js:1464
msgid "Value"
msgstr "数值"
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr "参数值"
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
-#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
-#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
+#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1492
+#: templates/js/translated/part.js:1596 templates/js/translated/part.js:2344
msgid "Units"
msgstr "单位"
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr "参数单位"
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
#, fuzzy
#| msgid "Quantity must be greater than zero"
msgid "Pack units must be greater than zero"
msgstr "数量必须大于0"
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:427 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
-#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1765
+#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1749
#: templates/js/translated/pricing.js:498
-#: templates/js/translated/purchase_order.js:1672
-#: templates/js/translated/table_filters.js:796
+#: templates/js/translated/purchase_order.js:1668
+#: templates/js/translated/table_filters.js:760
msgid "Supplier"
msgstr "供应商"
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr "选择供应商"
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
-#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:433
+#: templates/js/translated/company.js:349 templates/js/translated/part.js:1767
#: templates/js/translated/pricing.js:510
-#: templates/js/translated/purchase_order.js:1829
-#: templates/js/translated/purchase_order.js:2007
+#: templates/js/translated/purchase_order.js:1825
+#: templates/js/translated/purchase_order.js:2003
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:433
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr "选择制造商商品"
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr "外部供货商商品链接URL"
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr "供应商商品描述"
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr "备注"
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低收费(例如库存费)"
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:119 stock/models.py:701 stock/serializers.py:1238
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
-#: templates/js/translated/stock.js:2394
+#: templates/js/translated/stock.js:2356
msgid "Packaging"
msgstr "打包"
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr "商品打包"
-#: company/models.py:741 templates/js/translated/company.js:1641
-#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
+#: company/models.py:746 templates/js/translated/company.js:1641
+#: templates/js/translated/part.js:1801 templates/js/translated/part.js:1856
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
#: templates/js/translated/purchase_order.js:1088
-#: templates/js/translated/purchase_order.js:2063
-#: templates/js/translated/purchase_order.js:2080
+#: templates/js/translated/purchase_order.js:2059
+#: templates/js/translated/purchase_order.js:2076
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4154,17 +4120,17 @@ msgstr "从 URL 下载图片"
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1751 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:720
+#: stock/models.py:721 stock/serializers.py:985
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
#: templates/js/translated/return_order.js:293
#: templates/js/translated/sales_order.js:781
-#: templates/js/translated/stock.js:2930
-#: templates/js/translated/table_filters.js:800
+#: templates/js/translated/stock.js:2881
+#: templates/js/translated/table_filters.js:764
msgid "Customer"
msgstr "客户"
@@ -4172,7 +4138,7 @@ msgstr "客户"
msgid "Uses default currency"
msgstr "使用默认货币"
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4350,7 +4316,7 @@ msgstr "公司地址"
msgid "Add Address"
msgstr "地址"
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr "制造商"
@@ -4381,7 +4347,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4402,7 +4368,7 @@ msgid "New Parameter"
msgstr "新建参数"
#: company/templates/company/manufacturer_part.html:206
-#: templates/js/translated/part.js:1419
+#: templates/js/translated/part.js:1403
msgid "Add Parameter"
msgstr "添加参数"
@@ -4435,11 +4401,11 @@ msgid "Addresses"
msgstr "地址"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:684
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
-#: templates/js/translated/stock.js:2250
+#: templates/js/translated/stock.js:2212
msgid "Supplier Part"
msgstr "供应商商品"
@@ -4495,7 +4461,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:211
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:199
-#: templates/js/translated/stock.js:537
+#: templates/js/translated/stock.js:503
msgid "New Stock Item"
msgstr ""
@@ -4525,15 +4491,15 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
-#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: part/templates/part/category_sidebar.html:17 stock/admin.py:47
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1057
-#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737
+#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1041
+#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2699
#: users/models.py:41
msgid "Stock Items"
msgstr "库存项"
@@ -4542,28 +4508,28 @@ msgstr "库存项"
msgid "Supplier Part Pricing"
msgstr "供应商商品价格"
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr "新增供应商"
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr "新建制造商"
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr "客户信息"
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr "新建客户"
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr "公司"
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr "新建公司信息"
@@ -4583,7 +4549,7 @@ msgstr "标签"
msgid "Label template file"
msgstr "标签模板文件"
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:277
msgid "Enabled"
msgstr "已启用"
@@ -4607,7 +4573,7 @@ msgstr "高度 [mm]"
msgid "Label height, specified in mm"
msgstr "标注高度,以毫米为单位。"
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:270
msgid "Filename Pattern"
msgstr "文件名样式"
@@ -4623,8 +4589,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr "查询筛选器 (逗号分隔的键值对列表)"
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:298 report/models.py:445
+#: report/models.py:483 report/models.py:521 report/models.py:645
msgid "Filters"
msgstr "筛选器"
@@ -4643,607 +4609,607 @@ msgstr "商品二维码"
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
-#: templates/js/translated/purchase_order.js:2104
+#: templates/js/translated/purchase_order.js:2100
#: templates/js/translated/sales_order.js:1844
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
#: stock/templates/stock/item_base.html:177
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/part.js:1742 templates/js/translated/pricing.js:804
+#: templates/js/translated/part.js:1726 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:165
#: templates/js/translated/purchase_order.js:759
-#: templates/js/translated/purchase_order.js:1656
-#: templates/js/translated/stock.js:2230 templates/js/translated/stock.js:2878
+#: templates/js/translated/purchase_order.js:1652
+#: templates/js/translated/stock.js:2192 templates/js/translated/stock.js:2829
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1922 order/models.py:1968
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
#: templates/js/translated/return_order.js:278
-#: templates/js/translated/stock.js:2912
+#: templates/js/translated/stock.js:2863
#, fuzzy
#| msgid "Returned"
msgid "Return Order"
msgstr "已退回"
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
#, fuzzy
#| msgid "User or group responsible for this order"
msgid "Total price for this order"
msgstr "负责此订单的用户或群组"
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
#, fuzzy
#| msgid "Currency"
msgid "Order Currency"
msgstr "货币"
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
#, fuzzy
#| msgid "Build output does not match the parent build"
msgid "Contact does not match selected company"
msgstr "生产产出与对应生产不匹配"
-#: order/models.py:226
+#: order/models.py:232
#, fuzzy
#| msgid "Description (optional)"
msgid "Order description (optional)"
msgstr "描述 (可选)"
-#: order/models.py:231
+#: order/models.py:237
#, fuzzy
#| msgid "User or group responsible for this order"
msgid "Select project code for this order"
msgstr "负责此订单的用户或群组"
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr "负责此订单的用户或群组"
-#: order/models.py:265
+#: order/models.py:271
#, fuzzy
#| msgid "Priority of this build order"
msgid "Point of contact for this order"
msgstr "此构建订单的优先级"
-#: order/models.py:274
+#: order/models.py:280
#, fuzzy
#| msgid "User or group responsible for this order"
msgid "Company address for this order"
msgstr "负责此订单的用户或群组"
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr "订购该商品的公司"
-#: order/models.py:395 order/templates/order/order_base.html:148
-#: templates/js/translated/purchase_order.js:1681
+#: order/models.py:404 order/templates/order/order_base.html:148
+#: templates/js/translated/purchase_order.js:1677
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1774
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1775
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1781
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr "数量必须大于0"
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr "向其出售该商品的公司"
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1768
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1769
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
#, fuzzy
#| msgid "Build Order is ready to mark as completed"
msgid "Only an open order can be marked as complete"
msgstr "构建订单已准备好标记为已完成"
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
#, fuzzy
#| msgid "Description (optional)"
msgid "Line item description (optional)"
msgstr "描述 (可选)"
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1921
+#: order/models.py:1968 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr "供应商商品"
-#: order/models.py:1201 order/templates/order/order_base.html:196
-#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
+#: order/models.py:1216 order/templates/order/order_base.html:196
+#: templates/js/translated/part.js:1849 templates/js/translated/part.js:1880
#: templates/js/translated/purchase_order.js:1291
-#: templates/js/translated/purchase_order.js:2148
-#: templates/js/translated/return_order.js:761
+#: templates/js/translated/purchase_order.js:2144
+#: templates/js/translated/return_order.js:757
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:598
+#: templates/js/translated/table_filters.js:562
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:823 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
-#: templates/js/translated/stock.js:2281
+#: templates/js/translated/stock.js:2243
msgid "Purchase Price"
msgstr "采购价格"
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr "销售价格"
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1640 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:433
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1605
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1607
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1610
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1620 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1623
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1624
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1632
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1641
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
-#: templates/js/translated/return_order.js:719
+#: order/models.py:1654 order/models.py:1929
+#: templates/js/translated/return_order.js:715
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1655
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1658
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1738
#, fuzzy
#| msgid "Build Order Reference"
msgid "Return Order reference"
msgstr "相关生产订单"
-#: order/models.py:1737
+#: order/models.py:1752
#, fuzzy
#| msgid "Company from which the items are being ordered"
msgid "Company from which items are being returned"
msgstr "订购该商品的公司"
-#: order/models.py:1748
+#: order/models.py:1763
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1914
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1930
#, fuzzy
#| msgid "Returned from customer"
msgid "Select item to return from customer"
msgstr "从客户退货"
-#: order/models.py:1916
+#: order/models.py:1935
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1936
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1947 templates/js/translated/return_order.js:726
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1947
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1953
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr "无法取消订单"
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr "条形码"
-#: order/serializers.py:531
+#: order/serializers.py:535
#, fuzzy
#| msgid "Scan Barcode"
msgid "Scanned barcode"
msgstr "扫描条形码"
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
#, fuzzy
#| msgid "Build output does not match Build Order"
msgid "Line item does not match return order"
msgstr "生产产出与订单不匹配"
-#: order/serializers.py:1583
+#: order/serializers.py:1593
#, fuzzy
#| msgid "This build output has already been completed"
msgid "Line item has already been received"
msgstr "此生产产出已经完成"
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
#, fuzzy
#| msgid "Uses default currency"
msgid "Line price currency"
msgstr "使用默认货币"
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5419,12 +5385,12 @@ msgstr ""
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:133 templates/js/translated/build.js:518
-#: templates/js/translated/build.js:1610
+#: templates/js/translated/build.js:1602
#: templates/js/translated/purchase_order.js:703
#: templates/js/translated/purchase_order.js:1221
#: templates/js/translated/return_order.js:503
#: templates/js/translated/sales_order.js:1106
-#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:680 templates/js/translated/stock.js:849
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "移除行"
@@ -5549,8 +5515,8 @@ msgstr ""
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:99
#: part/templates/part/part_pricing.html:114
-#: templates/js/translated/part.js:1069
-#: templates/js/translated/purchase_order.js:1731
+#: templates/js/translated/part.js:1053
+#: templates/js/translated/purchase_order.js:1727
#: templates/js/translated/return_order.js:378
#: templates/js/translated/sales_order.js:852
msgid "Total Cost"
@@ -5622,7 +5588,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5652,47 +5618,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
-#: stock/admin.py:119
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
+#: stock/admin.py:101
msgid "Part ID"
msgstr "商品ID"
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
-#: stock/admin.py:120
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
+#: stock/admin.py:102
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
-#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
-#: templates/js/translated/stock.js:2006
+#: templates/js/translated/part.js:1207 templates/js/translated/part.js:2315
+#: templates/js/translated/stock.js:1968
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
-#: templates/js/translated/part.js:2342
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:183 templates/js/translated/part.js:1212
+#: templates/js/translated/part.js:2321
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "关键词"
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr "类别 ID"
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5700,23 +5666,23 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr "最低库存"
#: part/admin.py:61 part/templates/part/part_base.html:199
#: templates/js/translated/company.js:1679
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:331
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2585
+#: templates/js/translated/part.js:690 templates/js/translated/part.js:2127
#: templates/js/translated/table_filters.js:170
msgid "On Order"
msgstr ""
@@ -5725,107 +5691,107 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:142
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:2147
+#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:124
+#: templates/js/translated/part.js:695 templates/js/translated/part.js:2131
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:950
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:960
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:42 stock/admin.py:116
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:43
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr "类别路径"
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:336
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/part.js:2799 templates/js/translated/search.js:130
+#: templates/js/translated/part.js:2778 templates/js/translated/search.js:130
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "商品"
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr "默认仓储地点"
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr "可用库存"
@@ -5834,7 +5800,7 @@ msgstr "可用库存"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "商品类别"
@@ -5849,9 +5815,9 @@ msgstr "商品类别"
msgid "Default location for parts in this category"
msgstr "此类别商品的默认仓储地点"
-#: part/models.py:134 stock/models.py:187 templates/js/translated/stock.js:2743
+#: part/models.py:134 stock/models.py:124 templates/js/translated/stock.js:2705
#: templates/js/translated/table_filters.js:239
-#: templates/js/translated/table_filters.js:283
+#: templates/js/translated/table_filters.js:259
msgid "Structural"
msgstr ""
@@ -5867,12 +5833,11 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr "此类别商品的默认关键字"
-#: part/models.py:145 stock/models.py:85 stock/models.py:175
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: part/models.py:145 stock/models.py:113
msgid "Icon"
msgstr ""
-#: part/models.py:146 stock/models.py:176
+#: part/models.py:146 stock/models.py:114
msgid "Icon (optional)"
msgstr ""
@@ -5880,733 +5845,733 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN 必须匹配正则表达式 {pat}"
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr "在商品设置中不允许重复的IPN"
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr "商品名称"
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
#, fuzzy
#| msgid "Description (optional)"
msgid "Part description (optional)"
msgstr "描述 (可选)"
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr "提高搜索结果可见性的关键字"
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:349 part/serializers.py:964
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
-#: templates/js/translated/part.js:2372
+#: templates/js/translated/part.js:2351
msgid "Category"
msgstr "类别"
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr "商品类别"
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr "内部商品编号"
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr "商品版本号"
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr "默认供应商商品"
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr "此商品可以销售给客户吗?"
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr "这是一个虚拟商品,如软件产品或许可证吗?"
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr "新建用户"
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
-#: templates/js/translated/part.js:2466
+#: templates/js/translated/part.js:2445
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
-#: templates/js/translated/part.js:1082 templates/js/translated/pricing.js:826
+#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/js/translated/part.js:1066 templates/js/translated/pricing.js:826
#: templates/js/translated/pricing.js:950
-#: templates/js/translated/purchase_order.js:1710
-#: templates/js/translated/stock.js:2792
+#: templates/js/translated/purchase_order.js:1706
+#: templates/js/translated/stock.js:2743
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:425
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:432
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2842
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
-#: templates/js/translated/table_filters.js:477
+#: part/models.py:3348 templates/js/translated/part.js:2851
+#: templates/js/translated/table_filters.js:453
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2859
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2866
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
#, fuzzy
#| msgid "Key string must be unique"
msgid "Choices must be unique"
msgstr "关键字必须是唯一的"
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
-#: templates/js/translated/table_filters.js:817
+#: part/models.py:3484 templates/js/translated/part.js:1608
+#: templates/js/translated/table_filters.js:781
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1617
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
#, fuzzy
#| msgid "Invalid choice for parent build"
msgid "Invalid choice for parameter value"
msgstr "上级生产选项无效"
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr "参数模板"
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr "默认值"
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr "BOM项"
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
#, fuzzy
#| msgid "Some stock items have been overallocated"
msgid "This BOM item has been validated"
msgstr "一些库存项已被过度分配"
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:577
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:342
#, fuzzy
#| msgid "Rejected"
msgid "No parts selected"
msgstr "已拒绝"
-#: part/serializers.py:353
+#: part/serializers.py:350
#, fuzzy
#| msgid "Set category"
msgid "Select category"
msgstr "设置类别"
-#: part/serializers.py:383
+#: part/serializers.py:381
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:381
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:386
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:386
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:391 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:391
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:396
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:396
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:401
#, fuzzy
#| msgid "Company Notes"
msgid "Copy Notes"
msgstr "公司备注"
-#: part/serializers.py:403
+#: part/serializers.py:401
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:411
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:411
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:417
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:417
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:427
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:438
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:444
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:452
+#: part/serializers.py:451
msgid "Selected company is not a valid supplier"
msgstr ""
@@ -6614,188 +6579,188 @@ msgstr ""
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:471
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:479
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
-#: templates/js/translated/part.js:468
+#: part/serializers.py:732 part/templates/part/copy_part.html:9
+#: templates/js/translated/part.js:452
msgid "Duplicate Part"
msgstr "复制部件"
-#: part/serializers.py:729
+#: part/serializers.py:732
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:737 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:737
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:742
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:742
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:748
msgid "Copy Category Parameters"
msgstr "复制类别参数"
-#: part/serializers.py:746
+#: part/serializers.py:749
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:958
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:964
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:970
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:975
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:976
#, fuzzy
#| msgid "Exclude stock items from this selected location"
msgid "Exclude stock items in external locations"
msgstr "从该选定的仓储地点排除库存项"
-#: part/serializers.py:975
+#: part/serializers.py:981
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:982
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:987
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:988
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:996
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1086
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1087
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1374
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1382
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1383
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1388
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1389
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1394
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1395
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1400
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1401
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1441
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1442
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1472
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1515
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1518
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1521
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1530
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1538
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1559
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
-#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
-#: templates/js/translated/purchase_order.js:2063
+#: part/stocktake.py:225 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1801 templates/js/translated/part.js:1856
+#: templates/js/translated/purchase_order.js:2059
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:295
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:296
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6937,9 +6902,9 @@ msgid "Add stocktake information"
msgstr ""
#: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50
-#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30
+#: stock/admin.py:130 templates/InvenTree/settings/part_stocktake.html:30
#: templates/InvenTree/settings/sidebar.html:53
-#: templates/js/translated/stock.js:2186 users/models.py:39
+#: templates/js/translated/stock.js:2148 users/models.py:39
msgid "Stocktake"
msgstr ""
@@ -7013,7 +6978,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -7037,15 +7002,15 @@ msgstr "商品供应商"
msgid "Part Manufacturers"
msgstr "商品制造商"
-#: part/templates/part/detail.html:659
+#: part/templates/part/detail.html:654
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:667
+#: part/templates/part/detail.html:662
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:752
+#: part/templates/part/detail.html:747
msgid "Add Test Result Template"
msgstr ""
@@ -7126,7 +7091,7 @@ msgstr "清点商品库存"
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:93 templates/js/translated/part.js:2288
+#: part/templates/part/part_base.html:93 templates/js/translated/part.js:2267
msgid "Part actions"
msgstr ""
@@ -7175,8 +7140,8 @@ msgstr "打印操作"
#: part/templates/part/part_base.html:148
#: templates/js/translated/company.js:1277
#: templates/js/translated/company.js:1565
-#: templates/js/translated/model_renderers.js:304
-#: templates/js/translated/part.js:811 templates/js/translated/part.js:1215
+#: templates/js/translated/model_renderers.js:291
+#: templates/js/translated/part.js:795 templates/js/translated/part.js:1199
msgid "Inactive"
msgstr ""
@@ -7199,7 +7164,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -7208,7 +7173,7 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:324 templates/js/translated/bom.js:1071
-#: templates/js/translated/part.js:1261 templates/js/translated/part.js:2439
+#: templates/js/translated/part.js:1245 templates/js/translated/part.js:2418
#: templates/js/translated/pricing.js:391
#: templates/js/translated/pricing.js:1054
msgid "Price Range"
@@ -7231,7 +7196,7 @@ msgstr "商品二维码"
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:474 templates/js/translated/part.js:2282
+#: part/templates/part/part_base.html:474 templates/js/translated/part.js:2261
#, fuzzy
#| msgid "Edit part"
msgid "part"
@@ -7307,9 +7272,9 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:51
-#: templates/js/translated/part.js:1239 templates/js/translated/part.js:2140
-#: templates/js/translated/part.js:2387 templates/js/translated/stock.js:1059
-#: templates/js/translated/stock.js:2040 templates/navbar.html:31
+#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2124
+#: templates/js/translated/part.js:2366 templates/js/translated/stock.js:1021
+#: templates/js/translated/stock.js:2002 templates/navbar.html:31
msgid "Stock"
msgstr "库存"
@@ -7338,11 +7303,11 @@ msgstr ""
msgid "Refresh Part Pricing"
msgstr ""
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:25 stock/admin.py:129
#: stock/templates/stock/item_base.html:447
#: templates/js/translated/company.js:1693
#: templates/js/translated/company.js:1703
-#: templates/js/translated/stock.js:2216
+#: templates/js/translated/stock.js:2178
msgid "Last Updated"
msgstr ""
@@ -7405,8 +7370,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:701
-#: templates/js/translated/part.js:2135 templates/js/translated/part.js:2137
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:685
+#: templates/js/translated/part.js:2119 templates/js/translated/part.js:2121
msgid "No Stock"
msgstr ""
@@ -7459,11 +7424,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7501,7 +7466,7 @@ msgstr "未指定操作"
msgid "No matching action found"
msgstr "未找到指定操作"
-#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:109
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
@@ -7513,12 +7478,12 @@ msgstr "未找到匹配条形码数据"
msgid "Match found for barcode data"
msgstr "找到匹配条形码数据"
-#: plugin/base/barcodes/api.py:119
-#: templates/js/translated/purchase_order.js:1391
+#: plugin/base/barcodes/api.py:120
+#: templates/js/translated/purchase_order.js:1387
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:215
+#: plugin/base/barcodes/api.py:217
msgid "No match found for provided value"
msgstr ""
@@ -7536,7 +7501,6 @@ msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:28
#: plugin/builtin/integration/core_notifications.py:34
-#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
msgid "InvenTree contributors"
msgstr ""
@@ -7575,20 +7539,10 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
-#: plugin/builtin/integration/currency_exchange.py:23
-msgid "InvenTree Currency Exchange"
-msgstr ""
-
-#: plugin/builtin/integration/currency_exchange.py:24
-#, fuzzy
-#| msgid "Default currency used for this company"
-msgid "Default currency exchange integration"
-msgstr "该公司使用的默认货币"
-
#: plugin/builtin/labels/inventree_label.py:20
msgid "InvenTree PDF label printer"
msgstr ""
@@ -7609,26 +7563,6 @@ msgstr "调试模式"
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/installer.py:140
-msgid "Permission denied: only staff users can install plugins"
-msgstr ""
-
-#: plugin/installer.py:186
-#, fuzzy
-#| msgid "Installed into assembly"
-msgid "Installed plugin successfully"
-msgstr "安装到组装中"
-
-#: plugin/installer.py:192
-#, fuzzy, python-brace-format
-#| msgid "Installed into assembly"
-msgid "Installed plugin into {path}"
-msgstr "安装到组装中"
-
-#: plugin/installer.py:201
-msgid "Plugin installation failed"
-msgstr ""
-
#: plugin/models.py:28
msgid "Plugin Configuration"
msgstr ""
@@ -7653,43 +7587,37 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
-#: templates/js/translated/table_filters.js:500
-msgid "Installed"
-msgstr ""
-
-#: plugin/models.py:138
+#: plugin/models.py:131
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:140
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
-#: templates/js/translated/plugin.js:50
+#: plugin/models.py:166 templates/InvenTree/settings/plugin_settings.html:9
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:217
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:478
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:480
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:482
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7726,188 +7654,148 @@ msgstr ""
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/samples/integration/sample_currency_exchange.py:15
-msgid "Sample currency exchange plugin"
-msgstr ""
-
-#: plugin/samples/integration/sample_currency_exchange.py:18
-#, fuzzy
-#| msgid "About InvenTree"
-msgid "InvenTree Contributors"
-msgstr "关于 InventTree"
-
-#: plugin/serializers.py:87
+#: plugin/serializers.py:90
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:88
+#: plugin/serializers.py:91
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:93
+#: plugin/serializers.py:96
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:94
+#: plugin/serializers.py:97
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:97
+#: plugin/serializers.py:100
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:98
+#: plugin/serializers.py:101
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:110
+#: plugin/serializers.py:113
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:112
+#: plugin/serializers.py:115
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:193
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:194
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr "没有为模板提供有效对象"
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
-#: report/helpers.py:14
-msgid "A3"
-msgstr ""
-
-#: report/helpers.py:15
-msgid "Legal"
-msgstr ""
-
-#: report/helpers.py:16
-msgid "Letter"
-msgstr ""
-
-#: report/models.py:171
+#: report/models.py:165
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:171
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:178
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:184
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
-#, fuzzy
-#| msgid "Default page size for PDF reports"
-msgid "Page size for PDF reports"
-msgstr "PDF 报表默认页面大小"
-
-#: report/models.py:203
-msgid "Landscape"
-msgstr ""
-
-#: report/models.py:204
-msgid "Render report in landscape orientation"
-msgstr ""
-
-#: report/models.py:305
+#: report/models.py:271
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:278
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:299
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:307
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:308
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:369
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:370
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:411
msgid "Part Filters"
msgstr "商品过滤器"
-#: report/models.py:445
+#: report/models.py:412
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:446
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:484
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:522
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:575
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:576
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:580
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:617
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:618
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:625
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:646
#, fuzzy
#| msgid "Query filters (comma-separated list of key=value pairs),"
msgid "stock location query filters (comma-separated list of key=value pairs)"
@@ -7930,7 +7818,7 @@ msgstr ""
#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527
#: templates/js/translated/pricing.js:596
#: templates/js/translated/pricing.js:834
-#: templates/js/translated/purchase_order.js:2094
+#: templates/js/translated/purchase_order.js:2090
#: templates/js/translated/sales_order.js:1834
msgid "Unit Price"
msgstr "单价"
@@ -7945,23 +7833,23 @@ msgstr "额外的生产备注"
#: report/templates/report/inventree_po_report_base.html:72
#: report/templates/report/inventree_so_report_base.html:72
-#: templates/js/translated/purchase_order.js:1996
+#: templates/js/translated/purchase_order.js:1992
#: templates/js/translated/sales_order.js:1803
msgid "Total"
msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
-#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
-#: templates/js/translated/build.js:2337
-#: templates/js/translated/model_renderers.js:222
+#: stock/models.py:725 stock/templates/stock/item_base.html:312
+#: templates/js/translated/build.js:508 templates/js/translated/build.js:1340
+#: templates/js/translated/build.js:2325
+#: templates/js/translated/model_renderers.js:219
#: templates/js/translated/return_order.js:537
-#: templates/js/translated/return_order.js:721
+#: templates/js/translated/return_order.js:717
#: templates/js/translated/sales_order.js:312
#: templates/js/translated/sales_order.js:1608
#: templates/js/translated/sales_order.js:1693
-#: templates/js/translated/stock.js:596
+#: templates/js/translated/stock.js:562
msgid "Serial Number"
msgstr "序列号"
@@ -7980,12 +7868,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2274 templates/js/translated/stock.js:1437
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2280
msgid "Result"
msgstr ""
@@ -8013,393 +7901,364 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:168
-#: stock/admin.py:122 templates/js/translated/stock.js:700
-#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3079
+#: stock/admin.py:104 templates/js/translated/stock.js:666
+#: templates/js/translated/stock.js:837 templates/js/translated/stock.js:3030
msgid "Serial"
msgstr ""
-#: stock/admin.py:40 stock/admin.py:126
+#: stock/admin.py:39 stock/admin.py:108
msgid "Location ID"
msgstr ""
-#: stock/admin.py:41 stock/admin.py:127
+#: stock/admin.py:40 stock/admin.py:109
msgid "Location Name"
msgstr ""
-#: stock/admin.py:45 stock/templates/stock/location.html:130
+#: stock/admin.py:44 stock/templates/stock/location.html:130
#: stock/templates/stock/location.html:136
msgid "Location Path"
msgstr ""
-#: stock/admin.py:118
+#: stock/admin.py:100
msgid "Stock Item ID"
msgstr ""
-#: stock/admin.py:125
+#: stock/admin.py:107
#, fuzzy
#| msgid "Status"
msgid "Status Code"
msgstr "状态"
-#: stock/admin.py:128
+#: stock/admin.py:110
msgid "Supplier Part ID"
msgstr "供应商商品ID"
-#: stock/admin.py:129
+#: stock/admin.py:111
msgid "Supplier ID"
msgstr ""
-#: stock/admin.py:130
+#: stock/admin.py:112
msgid "Supplier Name"
msgstr ""
-#: stock/admin.py:131
+#: stock/admin.py:113
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:114 stock/models.py:708
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
-#: stock/admin.py:133
+#: stock/admin.py:115
msgid "Build ID"
msgstr ""
-#: stock/admin.py:135
+#: stock/admin.py:117
msgid "Sales Order ID"
msgstr ""
-#: stock/admin.py:136
+#: stock/admin.py:118
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:143
+#: stock/admin.py:125
msgid "Review Needed"
msgstr ""
-#: stock/admin.py:144
+#: stock/admin.py:126
#, fuzzy
#| msgid "Delete Template"
msgid "Delete on Deplete"
msgstr "删除模板"
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:131 stock/models.py:789
#: stock/templates/stock/item_base.html:434
-#: templates/js/translated/stock.js:2200
+#: templates/js/translated/stock.js:2162
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:434 templates/js/translated/table_filters.js:403
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:641
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:648
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:676
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:685
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:708
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:56
-#, fuzzy
-#| msgid "Stock Location"
-msgid "Stock Location type"
-msgstr "仓储地点"
-
-#: stock/models.py:57
-#, fuzzy
-#| msgid "Stock Locations"
-msgid "Stock Location types"
-msgstr "仓储地点"
-
-#: stock/models.py:86
-msgid "Default icon for all locations that have no icon set (optional)"
-msgstr ""
-
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:54 stock/models.py:692
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "仓储地点"
-#: stock/models.py:117 stock/templates/stock/location.html:178
+#: stock/models.py:55 stock/templates/stock/location.html:178
#: templates/InvenTree/search.html:166 templates/js/translated/search.js:178
#: users/models.py:40
msgid "Stock Locations"
msgstr "仓储地点"
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:118 stock/models.py:828
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:119 stock/models.py:829
msgid "Select Owner"
msgstr ""
-#: stock/models.py:189
+#: stock/models.py:126
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:195 templates/js/translated/stock.js:2752
+#: stock/models.py:132 templates/js/translated/stock.js:2714
#: templates/js/translated/table_filters.js:243
msgid "External"
msgstr ""
-#: stock/models.py:196
+#: stock/models.py:133
msgid "This is an external stock location"
msgstr ""
-#: stock/models.py:202 templates/js/translated/stock.js:2761
-#: templates/js/translated/table_filters.js:246
-#, fuzzy
-#| msgid "Location"
-msgid "Location type"
-msgstr "地点"
-
-#: stock/models.py:205
-#, fuzzy
-#| msgid "Stock item created"
-msgid "Stock location type of this location"
-msgstr "库存项已创建"
-
-#: stock/models.py:270
+#: stock/models.py:175
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:557
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:583 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:600
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "商品类型 ('{pf}') 必须是 {pe}"
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:610 stock/models.py:619
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:611
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:633
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:639
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:653
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:667
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:677
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:685
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:695
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:702 stock/serializers.py:1239
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:711
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:727
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:741 stock/serializers.py:1224
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:746
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:753
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:755
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:761 stock/templates/stock/item_base.html:364
#, fuzzy
#| msgid "Issued By"
msgid "Consumed By"
msgstr "发布者"
-#: stock/models.py:828
+#: stock/models.py:763
#, fuzzy
#| msgid "BuildOrder to which this build is allocated"
msgid "Build order which consumed this stock item"
msgstr "此次生产匹配的订单"
-#: stock/models.py:839
+#: stock/models.py:774
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:777
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:783
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:790
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:824
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:852
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1378
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1384
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1390
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1393
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1396
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1403 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr "序列号已存在"
-#: stock/models.py:1538
+#: stock/models.py:1474
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1477
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1480
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1483
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1486
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1489
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1496 stock/serializers.py:1135
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1500
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1504
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1508
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1702
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2192
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2250
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2256
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2275
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2281
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2287
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2294
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2300
msgid "Test notes"
msgstr ""
@@ -8411,147 +8270,147 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr "输入新项目的序列号"
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1092 stock/serializers.py:1363
msgid "Destination stock location"
msgstr "目标库存位置"
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr "添加交易备注 (可选)"
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
#, fuzzy
#| msgid "Selected stock item not found in BOM"
msgid "Select stock items to change status"
msgstr "在BOM中找不到选定的库存项"
-#: stock/serializers.py:690
+#: stock/serializers.py:696
#, fuzzy
#| msgid "Stock item created"
msgid "No stock items selected"
msgstr "库存项已创建"
-#: stock/serializers.py:977
+#: stock/serializers.py:947
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:951
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:955
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:986
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:992
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1000
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1010 stock/serializers.py:1270
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1099
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1104
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1105
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1110
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1111
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1121
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1210
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1231
#, fuzzy
#| msgid "Stock item created"
msgid "Stock item status code"
msgstr "库存项已创建"
-#: stock/serializers.py:1290
+#: stock/serializers.py:1260
msgid "Stock transaction notes"
msgstr ""
@@ -8592,7 +8451,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3230
+#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3177
msgid "Install Stock Item"
msgstr ""
@@ -8600,7 +8459,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1667
+#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1629
msgid "Add Test Result"
msgstr ""
@@ -8623,17 +8482,17 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:80
-#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1792
+#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1754
msgid "Count stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: templates/js/translated/stock.js:1774
+#: templates/js/translated/stock.js:1736
msgid "Add stock"
msgstr ""
#: stock/templates/stock/item_base.html:83
-#: templates/js/translated/stock.js:1783
+#: templates/js/translated/stock.js:1745
msgid "Remove stock"
msgstr ""
@@ -8642,12 +8501,12 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:89
-#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1801
+#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1763
msgid "Transfer stock"
msgstr ""
#: stock/templates/stock/item_base.html:92
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1817
msgid "Assign to customer"
msgstr ""
@@ -8688,7 +8547,7 @@ msgid "Delete stock item"
msgstr ""
#: stock/templates/stock/item_base.html:170 templates/InvenTree/search.html:139
-#: templates/js/translated/build.js:2105 templates/navbar.html:38
+#: templates/js/translated/build.js:2093 templates/navbar.html:38
msgid "Build"
msgstr "生产"
@@ -8756,7 +8615,7 @@ msgid "Available Quantity"
msgstr ""
#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/build.js:2362
+#: templates/js/translated/build.js:2350
msgid "No location set"
msgstr "未设置仓储地点"
@@ -8774,7 +8633,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:438
-#: templates/js/translated/table_filters.js:435
+#: templates/js/translated/table_filters.js:411
msgid "Expired"
msgstr ""
@@ -8784,7 +8643,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:440
-#: templates/js/translated/table_filters.js:441
+#: templates/js/translated/table_filters.js:417
msgid "Stale"
msgstr ""
@@ -8793,7 +8652,7 @@ msgid "No stocktake performed"
msgstr ""
#: stock/templates/stock/item_base.html:508
-#: templates/js/translated/stock.js:1922
+#: templates/js/translated/stock.js:1884
#, fuzzy
#| msgid "Stock Item"
msgid "stock item"
@@ -8827,7 +8686,7 @@ msgstr ""
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:663
+#: stock/templates/stock/item_base.html:659
msgid "Return to Stock"
msgstr ""
@@ -8907,22 +8766,22 @@ msgstr "新建仓储地点"
msgid "New Location"
msgstr "新建仓储地点"
-#: stock/templates/stock/location.html:288
-#: templates/js/translated/stock.js:2543
+#: stock/templates/stock/location.html:279
+#: templates/js/translated/stock.js:2505
#, fuzzy
#| msgid "Stock Location"
msgid "stock location"
msgstr "仓储地点"
-#: stock/templates/stock/location.html:316
+#: stock/templates/stock/location.html:307
msgid "Scanned stock container into this location"
msgstr ""
-#: stock/templates/stock/location.html:389
+#: stock/templates/stock/location.html:380
msgid "Stock Location QR Code"
msgstr ""
-#: stock/templates/stock/location.html:400
+#: stock/templates/stock/location.html:391
msgid "Link Barcode to Stock Location"
msgstr ""
@@ -9236,7 +9095,7 @@ msgid "Plugins"
msgstr ""
#: templates/InvenTree/settings/plugin.html:41
-#: templates/js/translated/plugin.js:150
+#: templates/js/translated/plugin.js:151
msgid "Install Plugin"
msgstr ""
@@ -9262,7 +9121,7 @@ msgid "Plugin information"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:42
-#: templates/js/translated/plugin.js:85
+#: templates/js/translated/plugin.js:89
msgid "Version"
msgstr ""
@@ -9299,8 +9158,7 @@ msgid "Installation path"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:100
-#: templates/js/translated/plugin.js:67
-#: templates/js/translated/table_filters.js:492
+#: templates/js/translated/plugin.js:77
msgid "Builtin"
msgstr ""
@@ -9308,31 +9166,21 @@ msgstr ""
msgid "This is a builtin plugin which cannot be disabled"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:107
-#: templates/js/translated/plugin.js:71
-#: templates/js/translated/table_filters.js:496
-msgid "Sample"
-msgstr ""
-
-#: templates/InvenTree/settings/plugin_settings.html:108
-msgid "This is a sample plugin"
-msgstr ""
-
-#: templates/InvenTree/settings/plugin_settings.html:113
+#: templates/InvenTree/settings/plugin_settings.html:106
msgid "Commit Author"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:117
+#: templates/InvenTree/settings/plugin_settings.html:110
#: templates/about.html:36
msgid "Commit Date"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:121
+#: templates/InvenTree/settings/plugin_settings.html:114
#: templates/about.html:29
msgid "Commit Hash"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:125
+#: templates/InvenTree/settings/plugin_settings.html:118
msgid "Commit Message"
msgstr ""
@@ -9429,9 +9277,9 @@ msgid "Edit"
msgstr "编辑"
#: templates/InvenTree/settings/settings_staff_js.html:81
-#: templates/js/translated/forms.js:508 templates/js/translated/helpers.js:105
-#: templates/js/translated/part.js:389 templates/js/translated/pricing.js:629
-#: templates/js/translated/stock.js:245 users/models.py:257
+#: templates/js/translated/forms.js:506 templates/js/translated/helpers.js:105
+#: templates/js/translated/part.js:373 templates/js/translated/pricing.js:629
+#: templates/js/translated/stock.js:215 users/models.py:256
msgid "Delete"
msgstr "删除"
@@ -9478,12 +9326,12 @@ msgid "No category parameter templates found"
msgstr "未找到类别参数模板"
#: templates/InvenTree/settings/settings_staff_js.html:288
-#: templates/js/translated/part.js:1642
+#: templates/js/translated/part.js:1626
msgid "Edit Template"
msgstr "编辑模板"
#: templates/InvenTree/settings/settings_staff_js.html:289
-#: templates/js/translated/part.js:1643
+#: templates/js/translated/part.js:1627
msgid "Delete Template"
msgstr "删除模板"
@@ -9493,56 +9341,18 @@ msgstr "删除模板"
msgid "Edit Category Parameter Template"
msgstr "删除类别参数模板"
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:329
msgid "Delete Category Parameter Template"
msgstr "删除类别参数模板"
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:364
msgid "Create Category Parameter Template"
msgstr "创建类别参数模板"
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:390
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:420
-#, fuzzy
-#| msgid "No stock location set"
-msgid "No stock location types found"
-msgstr "未设置仓储地点"
-
-#: templates/InvenTree/settings/settings_staff_js.html:441
-#, fuzzy
-#| msgid "Location actions"
-msgid "Location count"
-msgstr "仓储地操作"
-
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
-#, fuzzy
-#| msgid "Edit location"
-msgid "Edit Location Type"
-msgstr "编辑仓储地"
-
-#: templates/InvenTree/settings/settings_staff_js.html:447
-#, fuzzy
-#| msgid "Delete location"
-msgid "Delete Location type"
-msgstr "删除仓储地"
-
-#: templates/InvenTree/settings/settings_staff_js.html:470
-#, fuzzy
-#| msgid "Delete location"
-msgid "Delete Location Type"
-msgstr "删除仓储地"
-
-#: templates/InvenTree/settings/settings_staff_js.html:480
-#: templates/InvenTree/settings/stock.html:35
-#, fuzzy
-#| msgid "New Location"
-msgid "New Location Type"
-msgstr "新建仓储地点"
-
#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -9563,9 +9373,9 @@ msgid "Home Page"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:15
-#: templates/js/translated/forms.js:2045 templates/js/translated/tables.js:543
-#: templates/navbar.html:107 templates/search.html:8
-#: templates/search_form.html:6 templates/search_form.html:7
+#: templates/js/translated/tables.js:543 templates/navbar.html:107
+#: templates/search.html:8 templates/search_form.html:6
+#: templates/search_form.html:7
msgid "Search"
msgstr "搜索"
@@ -9600,12 +9410,6 @@ msgstr "销售订单设置"
msgid "Stock Settings"
msgstr "库存设置"
-#: templates/InvenTree/settings/stock.html:31
-#, fuzzy
-#| msgid "Stock Locations"
-msgid "Stock Location Types"
-msgstr "仓储地点"
-
#: templates/InvenTree/settings/user.html:13
msgid "Account Settings"
msgstr "帐户设置"
@@ -9919,7 +9723,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:728
+#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:726
msgid "Confirm"
msgstr "确认"
@@ -10099,26 +9903,18 @@ msgstr "添加附件"
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
-msgid "Pending Database Migrations"
-msgstr ""
-
-#: templates/base.html:116
-msgid "There are pending database migrations which require attention"
-msgstr ""
-
#: templates/email/build_order_completed.html:9
#: templates/email/new_order_assigned.html:9
#: templates/email/overdue_build_order.html:9
@@ -10147,7 +9943,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2529
msgid "Required Quantity"
msgstr ""
@@ -10161,15 +9957,15 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/part.js:3182
+#: templates/js/translated/part.js:3161
msgid "Minimum Quantity"
msgstr ""
-#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1130
+#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1124
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1131
+#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1125
msgid "No response from the InvenTree server"
msgstr ""
@@ -10181,27 +9977,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1140
+#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1134
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1141
+#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1135
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1145
+#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1139
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1146
+#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1140
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1150
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1144
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1151
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1145
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -10213,29 +10009,19 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1155
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1149
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1156
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1150
msgid "Connection timeout while requesting data from server"
msgstr ""
#: templates/js/translated/api.js:261
-msgid "Error 503: Service Unavailable"
-msgstr ""
-
-#: templates/js/translated/api.js:262
-#, fuzzy
-#| msgid "Stock item is over-allocated"
-msgid "The server is currently unavailable"
-msgstr "库存物品分配过度!"
-
-#: templates/js/translated/api.js:265
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:266
+#: templates/js/translated/api.js:262
msgid "Error code"
msgstr ""
@@ -10308,7 +10094,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:252
-#: templates/js/translated/modals.js:1120
+#: templates/js/translated/modals.js:1114
msgid "Invalid server response"
msgstr ""
@@ -10332,7 +10118,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1117
msgid "Remove stock item"
msgstr ""
@@ -10403,8 +10189,8 @@ msgid "Row Data"
msgstr ""
#: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700
-#: templates/js/translated/modals.js:74 templates/js/translated/modals.js:628
-#: templates/js/translated/modals.js:752 templates/js/translated/modals.js:1060
+#: templates/js/translated/modals.js:71 templates/js/translated/modals.js:622
+#: templates/js/translated/modals.js:746 templates/js/translated/modals.js:1054
#: templates/js/translated/purchase_order.js:802 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
@@ -10524,7 +10310,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2485
+#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2473
msgid "Variant stock allowed"
msgstr ""
@@ -10532,74 +10318,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2567
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2571
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
-#: templates/js/translated/part.js:1253
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2573
+#: templates/js/translated/part.js:1237
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2575
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2558
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2458
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
@@ -10643,13 +10429,13 @@ msgstr "生产订单未完成"
msgid "Complete Build Order"
msgstr "生产订单完成"
-#: templates/js/translated/build.js:357 templates/js/translated/stock.js:119
-#: templates/js/translated/stock.js:294
+#: templates/js/translated/build.js:357 templates/js/translated/stock.js:118
+#: templates/js/translated/stock.js:264
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:359 templates/js/translated/stock.js:121
-#: templates/js/translated/stock.js:296
+#: templates/js/translated/build.js:359 templates/js/translated/stock.js:120
+#: templates/js/translated/stock.js:266
msgid "Latest serial number"
msgstr ""
@@ -10709,13 +10495,13 @@ msgstr "是否确定取消生产?"
msgid "Deallocate Stock Items"
msgstr "选择库存项"
-#: templates/js/translated/build.js:572 templates/js/translated/build.js:700
-#: templates/js/translated/build.js:826
+#: templates/js/translated/build.js:572 templates/js/translated/build.js:696
+#: templates/js/translated/build.js:818
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:573 templates/js/translated/build.js:701
-#: templates/js/translated/build.js:827
+#: templates/js/translated/build.js:573 templates/js/translated/build.js:697
+#: templates/js/translated/build.js:819
msgid "At least one build output must be selected"
msgstr ""
@@ -10725,303 +10511,302 @@ msgstr ""
msgid "Selected build outputs will be marked as complete"
msgstr "删除所有未完成的生产产出"
-#: templates/js/translated/build.js:591 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:849
+#: templates/js/translated/build.js:591 templates/js/translated/build.js:721
+#: templates/js/translated/build.js:841
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:619
+#: templates/js/translated/build.js:615
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:716
+#: templates/js/translated/build.js:712
#, fuzzy
#| msgid "Delete any build outputs which have not been completed"
msgid "Selected build outputs will be marked as scrapped"
msgstr "删除所有未完成的生产产出"
-#: templates/js/translated/build.js:718
+#: templates/js/translated/build.js:714
#, fuzzy
#| msgid "Delete any build outputs which have not been completed"
msgid "Scrapped output are marked as rejected"
msgstr "删除所有未完成的生产产出"
-#: templates/js/translated/build.js:719
+#: templates/js/translated/build.js:715
#, fuzzy
#| msgid "Stock item is over-allocated"
msgid "Allocated stock items will no longer be available"
msgstr "库存物品分配过度!"
-#: templates/js/translated/build.js:720
+#: templates/js/translated/build.js:716
msgid "The completion status of the build order will not be adjusted"
msgstr ""
-#: templates/js/translated/build.js:751
+#: templates/js/translated/build.js:743
#, fuzzy
#| msgid "Create Build Output"
msgid "Scrap Build Outputs"
msgstr "创建创建生产产出"
-#: templates/js/translated/build.js:841
+#: templates/js/translated/build.js:833
#, fuzzy
#| msgid "All selected supplier parts will be deleted"
msgid "Selected build outputs will be deleted"
msgstr "删除所有选定的供应商商品"
-#: templates/js/translated/build.js:843
+#: templates/js/translated/build.js:835
#, fuzzy
#| msgid "Build output is already completed"
msgid "Build output data will be permanently deleted"
msgstr "生产产出已完成"
-#: templates/js/translated/build.js:844
+#: templates/js/translated/build.js:836
#, fuzzy
#| msgid "All selected supplier parts will be deleted"
msgid "Allocated stock items will be returned to stock"
msgstr "删除所有选定的供应商商品"
-#: templates/js/translated/build.js:862
+#: templates/js/translated/build.js:854
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:941
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:978 templates/js/translated/build.js:2326
+#: templates/js/translated/build.js:970 templates/js/translated/build.js:2314
#, fuzzy
#| msgid "Allocated Parts"
msgid "Allocated Quantity"
msgstr "已分配的部件"
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:984
msgid "Location not specified"
msgstr "未指定仓储地点"
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1006
msgid "Complete outputs"
msgstr "已完成输出"
-#: templates/js/translated/build.js:1032
+#: templates/js/translated/build.js:1024
#, fuzzy
#| msgid "Complete outputs"
msgid "Scrap outputs"
msgstr "已完成输出"
-#: templates/js/translated/build.js:1050
+#: templates/js/translated/build.js:1042
msgid "Delete outputs"
msgstr "删除输出"
-#: templates/js/translated/build.js:1104
+#: templates/js/translated/build.js:1096
#, fuzzy
#| msgid "Build output"
msgid "build output"
msgstr "生产产出"
-#: templates/js/translated/build.js:1105
+#: templates/js/translated/build.js:1097
#, fuzzy
#| msgid "Build output"
msgid "build outputs"
msgstr "生产产出"
-#: templates/js/translated/build.js:1109
+#: templates/js/translated/build.js:1101
#, fuzzy
#| msgid "Build actions"
msgid "Build output actions"
msgstr "生产操作"
-#: templates/js/translated/build.js:1278
+#: templates/js/translated/build.js:1270
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1371
+#: templates/js/translated/build.js:1363
#, fuzzy
#| msgid "Allocated Parts"
msgid "Allocated Lines"
msgstr "已分配的部件"
-#: templates/js/translated/build.js:1385
+#: templates/js/translated/build.js:1377
msgid "Required Tests"
msgstr ""
-#: templates/js/translated/build.js:1557
+#: templates/js/translated/build.js:1549
#: templates/js/translated/purchase_order.js:627
#: templates/js/translated/sales_order.js:1168
msgid "Select Parts"
msgstr "选择商品"
-#: templates/js/translated/build.js:1558
+#: templates/js/translated/build.js:1550
#: templates/js/translated/sales_order.js:1169
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1621
+#: templates/js/translated/build.js:1613
#: templates/js/translated/sales_order.js:1118
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1698
+#: templates/js/translated/build.js:1690
msgid "All Parts Allocated"
msgstr ""
-#: templates/js/translated/build.js:1699
+#: templates/js/translated/build.js:1691
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:1713
+#: templates/js/translated/build.js:1705
#: templates/js/translated/sales_order.js:1183
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1741
+#: templates/js/translated/build.js:1733
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1752
+#: templates/js/translated/build.js:1744
#: templates/js/translated/sales_order.js:1280
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1817
#: templates/js/translated/sales_order.js:1359
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1922
+#: templates/js/translated/build.js:1914
msgid "Automatic Stock Allocation"
msgstr ""
-#: templates/js/translated/build.js:1923
+#: templates/js/translated/build.js:1915
msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
msgstr ""
-#: templates/js/translated/build.js:1925
+#: templates/js/translated/build.js:1917
msgid "If a location is specified, stock will only be allocated from that location"
msgstr ""
-#: templates/js/translated/build.js:1926
+#: templates/js/translated/build.js:1918
msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
msgstr ""
-#: templates/js/translated/build.js:1927
+#: templates/js/translated/build.js:1919
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:1958
+#: templates/js/translated/build.js:1946
msgid "Allocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:2064
+#: templates/js/translated/build.js:2052
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2099 templates/js/translated/build.js:2464
-#: templates/js/translated/forms.js:2041 templates/js/translated/forms.js:2057
-#: templates/js/translated/part.js:2311 templates/js/translated/part.js:2737
-#: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681
+#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2452
+#: templates/js/translated/part.js:2290 templates/js/translated/part.js:2716
+#: templates/js/translated/stock.js:1915 templates/js/translated/stock.js:2643
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:2113
+#: templates/js/translated/build.js:2101
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:2159
+#: templates/js/translated/build.js:2147
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2195 templates/js/translated/stock.js:3013
+#: templates/js/translated/build.js:2183 templates/js/translated/stock.js:2964
msgid "No user information"
msgstr "没有用户信息"
-#: templates/js/translated/build.js:2210
+#: templates/js/translated/build.js:2198
msgid "group"
msgstr ""
-#: templates/js/translated/build.js:2371
+#: templates/js/translated/build.js:2359
#: templates/js/translated/sales_order.js:1643
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:2372
+#: templates/js/translated/build.js:2360
#: templates/js/translated/sales_order.js:1644
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:2387
+#: templates/js/translated/build.js:2375
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:2399
+#: templates/js/translated/build.js:2387
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:2440
+#: templates/js/translated/build.js:2428
#, fuzzy
#| msgid "Build actions"
msgid "build line"
msgstr "生产操作"
-#: templates/js/translated/build.js:2441
+#: templates/js/translated/build.js:2429
#, fuzzy
#| msgid "Build actions"
msgid "build lines"
msgstr "生产操作"
-#: templates/js/translated/build.js:2459
+#: templates/js/translated/build.js:2447
#, fuzzy
#| msgid "Subcategories"
msgid "No build lines found"
msgstr "子类别"
-#: templates/js/translated/build.js:2489 templates/js/translated/part.js:787
-#: templates/js/translated/part.js:1199
+#: templates/js/translated/build.js:2477 templates/js/translated/part.js:771
+#: templates/js/translated/part.js:1183
msgid "Trackable part"
msgstr "可追溯商品"
-#: templates/js/translated/build.js:2524
+#: templates/js/translated/build.js:2512
#, fuzzy
#| msgid "Quantity"
msgid "Unit Quantity"
msgstr "数量"
-#: templates/js/translated/build.js:2573
+#: templates/js/translated/build.js:2561
#: templates/js/translated/sales_order.js:1914
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:2575
+#: templates/js/translated/build.js:2563
#: templates/js/translated/sales_order.js:1912
msgid "Sufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:2622
+#: templates/js/translated/build.js:2610
#, fuzzy
#| msgid "Minimum Stock"
msgid "Consumable Item"
msgstr "最低库存"
-#: templates/js/translated/build.js:2627
+#: templates/js/translated/build.js:2615
#, fuzzy
#| msgid "Stock Item"
msgid "Tracked item"
msgstr "库存项"
-#: templates/js/translated/build.js:2634
+#: templates/js/translated/build.js:2622
#: templates/js/translated/sales_order.js:2013
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:2639 templates/js/translated/stock.js:1836
+#: templates/js/translated/build.js:2627 templates/js/translated/stock.js:1798
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:2643
+#: templates/js/translated/build.js:2631
#: templates/js/translated/sales_order.js:2007
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:2647
+#: templates/js/translated/build.js:2635
#, fuzzy
#| msgid "Confirm stock allocation"
msgid "Remove stock allocation"
@@ -11202,7 +10987,7 @@ msgid "Delete Parameters"
msgstr "删除参数"
#: templates/js/translated/company.js:1181
-#: templates/js/translated/company.js:1469 templates/js/translated/part.js:2239
+#: templates/js/translated/company.js:1469 templates/js/translated/part.js:2218
msgid "Order parts"
msgstr "订购商品"
@@ -11221,34 +11006,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:1269
-#: templates/js/translated/company.js:1557 templates/js/translated/part.js:795
-#: templates/js/translated/part.js:1207
+#: templates/js/translated/company.js:1557 templates/js/translated/part.js:779
+#: templates/js/translated/part.js:1191
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:1273
-#: templates/js/translated/company.js:1561 templates/js/translated/part.js:799
-#: templates/js/translated/part.js:1211
+#: templates/js/translated/company.js:1561 templates/js/translated/part.js:783
+#: templates/js/translated/part.js:1195
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:1393 templates/js/translated/part.js:1461
+#: templates/js/translated/company.js:1393 templates/js/translated/part.js:1445
msgid "No parameters found"
msgstr "无指定参数"
-#: templates/js/translated/company.js:1428 templates/js/translated/part.js:1524
+#: templates/js/translated/company.js:1428 templates/js/translated/part.js:1508
msgid "Edit parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:1429 templates/js/translated/part.js:1525
+#: templates/js/translated/company.js:1429 templates/js/translated/part.js:1509
msgid "Delete parameter"
msgstr "删除参数"
-#: templates/js/translated/company.js:1446 templates/js/translated/part.js:1430
+#: templates/js/translated/company.js:1446 templates/js/translated/part.js:1414
msgid "Edit Parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:1455 templates/js/translated/part.js:1546
+#: templates/js/translated/company.js:1455 templates/js/translated/part.js:1530
msgid "Delete Parameter"
msgstr "删除参数"
@@ -11350,61 +11135,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:371 templates/js/translated/forms.js:386
-#: templates/js/translated/forms.js:400 templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:373
+#: templates/js/translated/forms.js:371
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:388
+#: templates/js/translated/forms.js:386
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:402
+#: templates/js/translated/forms.js:400
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:416
+#: templates/js/translated/forms.js:414
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:754
+#: templates/js/translated/forms.js:752
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:855
+#: templates/js/translated/forms.js:853
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1403 templates/modals.html:19
+#: templates/js/translated/forms.js:1401 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1857
+#: templates/js/translated/forms.js:1855
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:2161 templates/js/translated/search.js:239
+#: templates/js/translated/forms.js:2071 templates/js/translated/search.js:239
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2375
+#: templates/js/translated/forms.js:2285
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2832
+#: templates/js/translated/forms.js:2742
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2832
+#: templates/js/translated/forms.js:2742
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2844
+#: templates/js/translated/forms.js:2754
msgid "Select Columns"
msgstr ""
@@ -11474,62 +11259,62 @@ msgstr "没有找到与所选商品相匹配的标签"
msgid "Labels sent to printer"
msgstr ""
-#: templates/js/translated/modals.js:58 templates/js/translated/modals.js:158
-#: templates/js/translated/modals.js:683
+#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:152
+#: templates/js/translated/modals.js:677
msgid "Cancel"
msgstr "取消"
-#: templates/js/translated/modals.js:63 templates/js/translated/modals.js:157
-#: templates/js/translated/modals.js:751 templates/js/translated/modals.js:1059
+#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:151
+#: templates/js/translated/modals.js:745 templates/js/translated/modals.js:1053
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:156
+#: templates/js/translated/modals.js:150
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:445
+#: templates/js/translated/modals.js:439
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:596
+#: templates/js/translated/modals.js:590
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:682
+#: templates/js/translated/modals.js:676
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:740
+#: templates/js/translated/modals.js:734
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:1011
+#: templates/js/translated/modals.js:1005
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:1011
+#: templates/js/translated/modals.js:1005
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:1023
+#: templates/js/translated/modals.js:1017
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1120
+#: templates/js/translated/modals.js:1114
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1135
+#: templates/js/translated/modals.js:1129
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1136
+#: templates/js/translated/modals.js:1130
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1159
+#: templates/js/translated/modals.js:1153
msgid "Error requesting form data"
msgstr ""
@@ -11539,7 +11324,7 @@ msgstr ""
#: templates/js/translated/news.js:38
#: templates/js/translated/notification.js:46
-#: templates/js/translated/part.js:1601
+#: templates/js/translated/part.js:1585
msgid "ID"
msgstr ""
@@ -11588,7 +11373,7 @@ msgid "Delete Line"
msgstr ""
#: templates/js/translated/order.js:281
-#: templates/js/translated/purchase_order.js:1969
+#: templates/js/translated/purchase_order.js:1965
msgid "No line items found"
msgstr ""
@@ -11620,347 +11405,347 @@ msgstr "商品重复选项"
msgid "Add Part Category"
msgstr "增加商品类别"
-#: templates/js/translated/part.js:305
+#: templates/js/translated/part.js:297
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:329 templates/js/translated/stock.js:175
+#: templates/js/translated/part.js:313 templates/js/translated/stock.js:146
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:349
+#: templates/js/translated/part.js:333
msgid "Create Part Category"
msgstr "创建商品类别"
-#: templates/js/translated/part.js:352
+#: templates/js/translated/part.js:336
#, fuzzy
#| msgid "Create new part category"
msgid "Create new category after this one"
msgstr "新建商品类别"
-#: templates/js/translated/part.js:353
+#: templates/js/translated/part.js:337
#, fuzzy
#| msgid "Part category"
msgid "Part category created"
msgstr "商品类别"
-#: templates/js/translated/part.js:367
+#: templates/js/translated/part.js:351
msgid "Edit Part Category"
msgstr "编辑商品类别"
-#: templates/js/translated/part.js:380
+#: templates/js/translated/part.js:364
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:385
+#: templates/js/translated/part.js:369
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:378
msgid "Delete Part Category"
msgstr "删除商品类别"
-#: templates/js/translated/part.js:398
+#: templates/js/translated/part.js:382
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:403
+#: templates/js/translated/part.js:387
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:427
+#: templates/js/translated/part.js:411
msgid "Create Part"
msgstr "创建商品"
-#: templates/js/translated/part.js:429
+#: templates/js/translated/part.js:413
msgid "Create another part after this one"
msgstr ""
-#: templates/js/translated/part.js:430
+#: templates/js/translated/part.js:414
msgid "Part created successfully"
msgstr ""
-#: templates/js/translated/part.js:458
+#: templates/js/translated/part.js:442
msgid "Edit Part"
msgstr "编辑商品"
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:444
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:471
+#: templates/js/translated/part.js:455
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:512
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:513
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:527
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:545
+#: templates/js/translated/part.js:529
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:546
+#: templates/js/translated/part.js:530
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:531
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:538
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:590
+#: templates/js/translated/part.js:574
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:592
+#: templates/js/translated/part.js:576
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:597
+#: templates/js/translated/part.js:581
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:599
+#: templates/js/translated/part.js:583
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:616
+#: templates/js/translated/part.js:600
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:626
+#: templates/js/translated/part.js:610
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:629
+#: templates/js/translated/part.js:613
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:654
+#: templates/js/translated/part.js:638
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:682
-#: templates/js/translated/table_filters.js:743
+#: templates/js/translated/part.js:666
+#: templates/js/translated/table_filters.js:707
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:685
+#: templates/js/translated/part.js:669
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:745
+#: templates/js/translated/part.js:729
msgid "Demand"
msgstr ""
-#: templates/js/translated/part.js:768
+#: templates/js/translated/part.js:752
msgid "Unit"
msgstr ""
-#: templates/js/translated/part.js:791 templates/js/translated/part.js:1203
+#: templates/js/translated/part.js:775 templates/js/translated/part.js:1187
msgid "Virtual part"
msgstr "虚拟商品"
-#: templates/js/translated/part.js:803
+#: templates/js/translated/part.js:787
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:807
+#: templates/js/translated/part.js:791
msgid "Salable part"
msgstr "可销售商品"
-#: templates/js/translated/part.js:886
+#: templates/js/translated/part.js:870
msgid "Schedule generation of a new stocktake report."
msgstr ""
-#: templates/js/translated/part.js:886
+#: templates/js/translated/part.js:870
msgid "Once complete, the stocktake report will be available for download."
msgstr ""
-#: templates/js/translated/part.js:894
+#: templates/js/translated/part.js:878
msgid "Generate Stocktake Report"
msgstr ""
-#: templates/js/translated/part.js:898
+#: templates/js/translated/part.js:882
msgid "Stocktake report scheduled"
msgstr ""
-#: templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1031
msgid "No stocktake information available"
msgstr ""
-#: templates/js/translated/part.js:1105 templates/js/translated/part.js:1141
+#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1125
msgid "Edit Stocktake Entry"
msgstr ""
-#: templates/js/translated/part.js:1109 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:1093 templates/js/translated/part.js:1135
msgid "Delete Stocktake Entry"
msgstr ""
-#: templates/js/translated/part.js:1278
+#: templates/js/translated/part.js:1262
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1596
+#: templates/js/translated/part.js:1580
msgid "No part parameter templates found"
msgstr "未找到商品参数模板"
-#: templates/js/translated/part.js:1659
+#: templates/js/translated/part.js:1643
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/js/translated/part.js:1671
+#: templates/js/translated/part.js:1655
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1663
msgid "Delete Part Parameter Template"
msgstr ""
-#: templates/js/translated/part.js:1713
-#: templates/js/translated/purchase_order.js:1637
+#: templates/js/translated/part.js:1697
+#: templates/js/translated/purchase_order.js:1633
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/part.js:1856
-#: templates/js/translated/purchase_order.js:2132
-#: templates/js/translated/return_order.js:753
+#: templates/js/translated/part.js:1840
+#: templates/js/translated/purchase_order.js:2128
+#: templates/js/translated/return_order.js:749
#: templates/js/translated/sales_order.js:1872
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/part.js:1901
-#: templates/js/translated/purchase_order.js:2199
+#: templates/js/translated/part.js:1885
+#: templates/js/translated/purchase_order.js:2195
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/part.js:1964
+#: templates/js/translated/part.js:1948
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1986
+#: templates/js/translated/part.js:1970
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:2074 templates/js/translated/part.js:2501
+#: templates/js/translated/part.js:2058 templates/js/translated/part.js:2480
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:2195
+#: templates/js/translated/part.js:2179
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:2200
+#: templates/js/translated/part.js:2184
msgid "Set Part Category"
msgstr "设置商品类别"
-#: templates/js/translated/part.js:2230
+#: templates/js/translated/part.js:2209
msgid "Set category"
msgstr "设置类别"
-#: templates/js/translated/part.js:2283
+#: templates/js/translated/part.js:2262
#, fuzzy
#| msgid "Parts"
msgid "parts"
msgstr "商品"
-#: templates/js/translated/part.js:2379
+#: templates/js/translated/part.js:2358
msgid "No category"
msgstr "没有分类"
-#: templates/js/translated/part.js:2526 templates/js/translated/part.js:2656
-#: templates/js/translated/stock.js:2640
+#: templates/js/translated/part.js:2505 templates/js/translated/part.js:2635
+#: templates/js/translated/stock.js:2602
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:2542
+#: templates/js/translated/part.js:2521
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:2640
+#: templates/js/translated/part.js:2619
#, fuzzy
#| msgid "Subcategories"
msgid "No subcategories found"
msgstr "子类别"
-#: templates/js/translated/part.js:2676 templates/js/translated/stock.js:2660
+#: templates/js/translated/part.js:2655 templates/js/translated/stock.js:2622
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2756
+#: templates/js/translated/part.js:2735
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2772
+#: templates/js/translated/part.js:2751
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2849
+#: templates/js/translated/part.js:2828
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2900 templates/js/translated/stock.js:1436
+#: templates/js/translated/part.js:2879 templates/js/translated/stock.js:1398
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2901 templates/js/translated/stock.js:1437
-#: templates/js/translated/stock.js:1699
+#: templates/js/translated/part.js:2880 templates/js/translated/stock.js:1399
+#: templates/js/translated/stock.js:1661
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2905
+#: templates/js/translated/part.js:2884
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2921
+#: templates/js/translated/part.js:2900
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2935
+#: templates/js/translated/part.js:2914
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:3014 templates/js/translated/part.js:3015
+#: templates/js/translated/part.js:2993 templates/js/translated/part.js:2994
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:3017
+#: templates/js/translated/part.js:2996
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:3023
+#: templates/js/translated/part.js:3002
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:3073
+#: templates/js/translated/part.js:3052
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:3079
+#: templates/js/translated/part.js:3058
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:3175
+#: templates/js/translated/part.js:3154
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:3191
+#: templates/js/translated/part.js:3170
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:3236
+#: templates/js/translated/part.js:3215
msgid "Minimum Stock Level"
msgstr ""
@@ -11970,61 +11755,65 @@ msgstr ""
msgid "No plugins found"
msgstr "子类别"
-#: templates/js/translated/plugin.js:57
-#, fuzzy
-#| msgid "Print actions"
-msgid "This plugin is no longer installed"
-msgstr "打印操作"
-
-#: templates/js/translated/plugin.js:59
+#: templates/js/translated/plugin.js:54
msgid "This plugin is active"
msgstr ""
-#: templates/js/translated/plugin.js:61
+#: templates/js/translated/plugin.js:56
#, fuzzy
#| msgid "Print actions"
-msgid "This plugin is installed but not active"
+msgid "This plugin is not active"
msgstr "打印操作"
-#: templates/js/translated/plugin.js:116 templates/js/translated/plugin.js:185
+#: templates/js/translated/plugin.js:62
+#, fuzzy
+#| msgid "Build Description"
+msgid "Plugin Description"
+msgstr "构建描述"
+
+#: templates/js/translated/plugin.js:81
+msgid "Sample"
+msgstr ""
+
+#: templates/js/translated/plugin.js:117 templates/js/translated/plugin.js:183
msgid "Disable Plugin"
msgstr ""
-#: templates/js/translated/plugin.js:118 templates/js/translated/plugin.js:185
+#: templates/js/translated/plugin.js:119 templates/js/translated/plugin.js:183
#, fuzzy
#| msgid "Enabled"
msgid "Enable Plugin"
msgstr "已启用"
-#: templates/js/translated/plugin.js:157
+#: templates/js/translated/plugin.js:158
msgid "The Plugin was installed"
msgstr ""
-#: templates/js/translated/plugin.js:176
+#: templates/js/translated/plugin.js:174
#, fuzzy
#| msgid "Are you sure you want to delete this stock location?"
msgid "Are you sure you want to enable this plugin?"
msgstr "确实要删除此仓储地点吗?"
-#: templates/js/translated/plugin.js:180
+#: templates/js/translated/plugin.js:178
#, fuzzy
#| msgid "Are you sure you want to delete this stock location?"
msgid "Are you sure you want to disable this plugin?"
msgstr "确实要删除此仓储地点吗?"
-#: templates/js/translated/plugin.js:188
+#: templates/js/translated/plugin.js:186
#, fuzzy
#| msgid "Enabled"
msgid "Enable"
msgstr "已启用"
-#: templates/js/translated/plugin.js:188
+#: templates/js/translated/plugin.js:186
#, fuzzy
#| msgid "Available"
msgid "Disable"
msgstr "空闲"
-#: templates/js/translated/plugin.js:202
+#: templates/js/translated/plugin.js:200
msgid "Plugin updated"
msgstr ""
@@ -12229,88 +12018,88 @@ msgstr "订单编码"
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/purchase_order.js:1318
-#: templates/js/translated/return_order.js:558
+#: templates/js/translated/purchase_order.js:1314
+#: templates/js/translated/return_order.js:554
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1319
+#: templates/js/translated/purchase_order.js:1315
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1387
+#: templates/js/translated/purchase_order.js:1383
#, fuzzy
#| msgid "Scan Barcode"
msgid "Scan Item Barcode"
msgstr "扫描条形码"
-#: templates/js/translated/purchase_order.js:1388
+#: templates/js/translated/purchase_order.js:1384
msgid "Scan barcode on incoming item (must not match any existing stock items)"
msgstr ""
-#: templates/js/translated/purchase_order.js:1402
+#: templates/js/translated/purchase_order.js:1398
#, fuzzy
#| msgid "Enter barcode data"
msgid "Invalid barcode data"
msgstr "输入条形码数据"
-#: templates/js/translated/purchase_order.js:1664
+#: templates/js/translated/purchase_order.js:1660
#: templates/js/translated/return_order.js:283
#: templates/js/translated/sales_order.js:771
#: templates/js/translated/sales_order.js:995
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/purchase_order.js:1726
+#: templates/js/translated/purchase_order.js:1722
#: templates/js/translated/return_order.js:351
#: templates/js/translated/sales_order.js:848
#: templates/js/translated/sales_order.js:1008
msgid "Items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1822
+#: templates/js/translated/purchase_order.js:1818
#, fuzzy
#| msgid "All selected supplier parts will be deleted"
msgid "All selected Line items will be deleted"
msgstr "删除所有选定的供应商商品"
-#: templates/js/translated/purchase_order.js:1840
+#: templates/js/translated/purchase_order.js:1836
#, fuzzy
#| msgid "Allocate selected items"
msgid "Delete selected Line items?"
msgstr "分配选定项目"
-#: templates/js/translated/purchase_order.js:1895
+#: templates/js/translated/purchase_order.js:1891
#: templates/js/translated/sales_order.js:2067
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:1910
+#: templates/js/translated/purchase_order.js:1906
#: templates/js/translated/return_order.js:473
-#: templates/js/translated/return_order.js:666
+#: templates/js/translated/return_order.js:662
#: templates/js/translated/sales_order.js:2080
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:1921
-#: templates/js/translated/return_order.js:679
+#: templates/js/translated/purchase_order.js:1917
+#: templates/js/translated/return_order.js:675
#: templates/js/translated/sales_order.js:2091
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2203
+#: templates/js/translated/purchase_order.js:2199
#: templates/js/translated/sales_order.js:2021
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2204
-#: templates/js/translated/return_order.js:798
+#: templates/js/translated/purchase_order.js:2200
+#: templates/js/translated/return_order.js:794
#: templates/js/translated/sales_order.js:2022
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2205
-#: templates/js/translated/return_order.js:802
+#: templates/js/translated/purchase_order.js:2201
+#: templates/js/translated/return_order.js:798
#: templates/js/translated/sales_order.js:2028
msgid "Delete line item"
msgstr ""
@@ -12385,16 +12174,16 @@ msgstr "无指定参数"
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/return_order.js:559
+#: templates/js/translated/return_order.js:555
msgid "Receive Return Order Items"
msgstr ""
-#: templates/js/translated/return_order.js:690
+#: templates/js/translated/return_order.js:686
#: templates/js/translated/sales_order.js:2227
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/return_order.js:795
+#: templates/js/translated/return_order.js:791
msgid "Mark item as received"
msgstr ""
@@ -12541,7 +12330,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:1620
#: templates/js/translated/sales_order.js:1707
-#: templates/js/translated/stock.js:1744
+#: templates/js/translated/stock.js:1706
msgid "Shipped to customer"
msgstr ""
@@ -12603,502 +12392,492 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:98
+#: templates/js/translated/stock.js:97
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:129
+#: templates/js/translated/stock.js:128
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:139
-msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on"
-msgstr ""
-
-#: templates/js/translated/stock.js:152
+#: templates/js/translated/stock.js:137
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:166
-#, fuzzy
-#| msgid "Location"
-msgid "Add Location type"
-msgstr "地点"
-
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:172
msgid "Edit Stock Location"
msgstr "编辑仓储地点"
-#: templates/js/translated/stock.js:217
+#: templates/js/translated/stock.js:187
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:219
+#: templates/js/translated/stock.js:189
msgid "Create another location after this one"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:190
#, fuzzy
#| msgid "Stock item created"
msgid "Stock location created"
msgstr "库存项已创建"
-#: templates/js/translated/stock.js:234
+#: templates/js/translated/stock.js:204
msgid "Are you sure you want to delete this stock location?"
msgstr "确实要删除此仓储地点吗?"
-#: templates/js/translated/stock.js:241
+#: templates/js/translated/stock.js:211
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:250
+#: templates/js/translated/stock.js:220
msgid "Delete Stock Location"
msgstr "删除仓储地点"
-#: templates/js/translated/stock.js:254
+#: templates/js/translated/stock.js:224
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:259
+#: templates/js/translated/stock.js:229
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:313
+#: templates/js/translated/stock.js:283
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:349
+#: templates/js/translated/stock.js:319
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: templates/js/translated/stock.js:362
+#: templates/js/translated/stock.js:328
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:334
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:439
+#: templates/js/translated/stock.js:405
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:459
+#: templates/js/translated/stock.js:425
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:475
+#: templates/js/translated/stock.js:441
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:480
+#: templates/js/translated/stock.js:446
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:501
+#: templates/js/translated/stock.js:467
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:543
+#: templates/js/translated/stock.js:509
msgid "Create another item after this one"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:521
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:534
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:593
+#: templates/js/translated/stock.js:559
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:564
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:614
+#: templates/js/translated/stock.js:580
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:634
+#: templates/js/translated/stock.js:600
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:643
+#: templates/js/translated/stock.js:609
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:751
+#: templates/js/translated/stock.js:717
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:752
+#: templates/js/translated/stock.js:718
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:829
+#: templates/js/translated/stock.js:795
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:830
+#: templates/js/translated/stock.js:796
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:832
+#: templates/js/translated/stock.js:798
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:833
+#: templates/js/translated/stock.js:799
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:928
+#: templates/js/translated/stock.js:890
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:929
+#: templates/js/translated/stock.js:891
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1024
+#: templates/js/translated/stock.js:986
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:1025
+#: templates/js/translated/stock.js:987
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:1031
+#: templates/js/translated/stock.js:993
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:1032
+#: templates/js/translated/stock.js:994
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:1036
+#: templates/js/translated/stock.js:998
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:1037
+#: templates/js/translated/stock.js:999
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:1041
+#: templates/js/translated/stock.js:1003
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:1042 users/models.py:253
+#: templates/js/translated/stock.js:1004 users/models.py:252
msgid "Add"
msgstr "添加"
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1008
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1105
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1105
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3258
+#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:3205
msgid "Select Stock Items"
msgstr "选择库存项"
-#: templates/js/translated/stock.js:1178
+#: templates/js/translated/stock.js:1140
msgid "Select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1224
+#: templates/js/translated/stock.js:1186
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1322
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1362
+#: templates/js/translated/stock.js:1324
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1367
+#: templates/js/translated/stock.js:1329
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1429
+#: templates/js/translated/stock.js:1391
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1394
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/stock.js:1418
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:1482
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1682
+#: templates/js/translated/stock.js:1644
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1704
+#: templates/js/translated/stock.js:1666
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1736
+#: templates/js/translated/stock.js:1698
msgid "In production"
msgstr "正在生产"
-#: templates/js/translated/stock.js:1740
+#: templates/js/translated/stock.js:1702
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1748
+#: templates/js/translated/stock.js:1710
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1754
+#: templates/js/translated/stock.js:1716
msgid "No stock location set"
msgstr "未设置仓储地点"
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1772
msgid "Change stock status"
msgstr ""
-#: templates/js/translated/stock.js:1819
+#: templates/js/translated/stock.js:1781
msgid "Merge stock"
msgstr ""
-#: templates/js/translated/stock.js:1868
+#: templates/js/translated/stock.js:1830
msgid "Delete stock"
msgstr ""
-#: templates/js/translated/stock.js:1923
+#: templates/js/translated/stock.js:1885
#, fuzzy
#| msgid "Stock Items"
msgid "stock items"
msgstr "库存项"
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1890
#, fuzzy
#| msgid "Stock Location"
msgid "Scan to location"
msgstr "仓储地点"
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1901
#, fuzzy
#| msgid "Stock Locations"
msgid "Stock Actions"
msgstr "仓储地点"
-#: templates/js/translated/stock.js:1983
+#: templates/js/translated/stock.js:1945
#, fuzzy
#| msgid "Installed into assembly"
msgid "Load installed items"
msgstr "安装到组装中"
-#: templates/js/translated/stock.js:2061
+#: templates/js/translated/stock.js:2023
msgid "Stock item is in production"
msgstr "库存品正在生产"
-#: templates/js/translated/stock.js:2066
+#: templates/js/translated/stock.js:2028
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:2069
+#: templates/js/translated/stock.js:2031
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2034
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:2074
+#: templates/js/translated/stock.js:2036
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:2076
+#: templates/js/translated/stock.js:2038
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2041
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2081
+#: templates/js/translated/stock.js:2043
#, fuzzy
#| msgid "Accept as consumed by this build order"
msgid "Stock item has been consumed by a build order"
msgstr "接受此构建订单所消耗的内容"
-#: templates/js/translated/stock.js:2085
+#: templates/js/translated/stock.js:2047
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:2087
+#: templates/js/translated/stock.js:2049
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:2092
+#: templates/js/translated/stock.js:2054
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2056
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:2096
+#: templates/js/translated/stock.js:2058
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:2100
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/stock.js:2062
+#: templates/js/translated/table_filters.js:326
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:2265
+#: templates/js/translated/stock.js:2227
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2312
+#: templates/js/translated/stock.js:2274
#, fuzzy
#| msgid "Stock Source"
msgid "Stock Value"
msgstr "库存来源"
-#: templates/js/translated/stock.js:2440
+#: templates/js/translated/stock.js:2402
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2544
+#: templates/js/translated/stock.js:2506
#, fuzzy
#| msgid "Stock Locations"
msgid "stock locations"
msgstr "仓储地点"
-#: templates/js/translated/stock.js:2699
+#: templates/js/translated/stock.js:2661
#, fuzzy
#| msgid "Stock Locations"
msgid "Load Sublocations"
msgstr "仓储地点"
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2768
msgid "Details"
msgstr "详情"
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2772
#, fuzzy
#| msgid "Change"
msgid "No changes"
msgstr "更改"
-#: templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:2784
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2855
+#: templates/js/translated/stock.js:2806
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2823
#, fuzzy
#| msgid "Sales Order Settings"
msgid "Build order no longer exists"
msgstr "销售订单设置"
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2838
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2904
+#: templates/js/translated/stock.js:2855
#, fuzzy
#| msgid "Sales Order Settings"
msgid "Sales Order no longer exists"
msgstr "销售订单设置"
-#: templates/js/translated/stock.js:2921
+#: templates/js/translated/stock.js:2872
msgid "Return Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2940
+#: templates/js/translated/stock.js:2891
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2958
+#: templates/js/translated/stock.js:2909
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2976
+#: templates/js/translated/stock.js:2927
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2984
+#: templates/js/translated/stock.js:2935
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:3056
+#: templates/js/translated/stock.js:3007
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:3106 templates/js/translated/stock.js:3141
+#: templates/js/translated/stock.js:3057 templates/js/translated/stock.js:3092
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3163
+#: templates/js/translated/stock.js:3110
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:3184
+#: templates/js/translated/stock.js:3131
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:3185
+#: templates/js/translated/stock.js:3132
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:3187
+#: templates/js/translated/stock.js:3134
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3188
+#: templates/js/translated/stock.js:3135
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:3189
+#: templates/js/translated/stock.js:3136
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:3190
+#: templates/js/translated/stock.js:3137
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:3203
+#: templates/js/translated/stock.js:3150
msgid "Select part to install"
msgstr ""
-#: templates/js/translated/stock.js:3259
+#: templates/js/translated/stock.js:3206
#, fuzzy
#| msgid "Select Stock Items"
msgid "Select one or more stock items"
msgstr "选择库存项"
-#: templates/js/translated/stock.js:3272
+#: templates/js/translated/stock.js:3219
#, fuzzy
#| msgid "Select Stock Items"
msgid "Selected stock items"
msgstr "选择库存项"
-#: templates/js/translated/stock.js:3276
+#: templates/js/translated/stock.js:3223
#, fuzzy
#| msgid "Stock Settings"
msgid "Change Stock Status"
@@ -13109,23 +12888,23 @@ msgid "Has project code"
msgstr ""
#: templates/js/translated/table_filters.js:89
-#: templates/js/translated/table_filters.js:601
-#: templates/js/translated/table_filters.js:613
-#: templates/js/translated/table_filters.js:654
+#: templates/js/translated/table_filters.js:565
+#: templates/js/translated/table_filters.js:577
+#: templates/js/translated/table_filters.js:618
msgid "Order status"
msgstr ""
#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:618
-#: templates/js/translated/table_filters.js:644
-#: templates/js/translated/table_filters.js:659
+#: templates/js/translated/table_filters.js:582
+#: templates/js/translated/table_filters.js:608
+#: templates/js/translated/table_filters.js:623
msgid "Outstanding"
msgstr ""
#: templates/js/translated/table_filters.js:102
-#: templates/js/translated/table_filters.js:524
-#: templates/js/translated/table_filters.js:626
-#: templates/js/translated/table_filters.js:667
+#: templates/js/translated/table_filters.js:488
+#: templates/js/translated/table_filters.js:590
+#: templates/js/translated/table_filters.js:631
msgid "Assigned to me"
msgstr ""
@@ -13146,12 +12925,12 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:775
+#: templates/js/translated/table_filters.js:739
msgid "Has Pricing"
msgstr ""
#: templates/js/translated/table_filters.js:234
-#: templates/js/translated/table_filters.js:345
+#: templates/js/translated/table_filters.js:321
msgid "Include sublocations"
msgstr ""
@@ -13159,216 +12938,214 @@ msgstr ""
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:267
-#, fuzzy
-#| msgid "No location set"
-msgid "Has location type"
-msgstr "未设置仓储地点"
-
-#: templates/js/translated/table_filters.js:278
-#: templates/js/translated/table_filters.js:279
-#: templates/js/translated/table_filters.js:707
+#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:255
+#: templates/js/translated/table_filters.js:671
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:755
+#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:719
msgid "Subscribed"
msgstr ""
-#: templates/js/translated/table_filters.js:298
-#: templates/js/translated/table_filters.js:380
+#: templates/js/translated/table_filters.js:274
+#: templates/js/translated/table_filters.js:356
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:301
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:277
+#: templates/js/translated/table_filters.js:363
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:302
-#: templates/js/translated/table_filters.js:388
+#: templates/js/translated/table_filters.js:278
+#: templates/js/translated/table_filters.js:364
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:305
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:281
+#: templates/js/translated/table_filters.js:367
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:306
-#: templates/js/translated/table_filters.js:392
+#: templates/js/translated/table_filters.js:282
+#: templates/js/translated/table_filters.js:368
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:309
-#: templates/js/translated/table_filters.js:310
-#: templates/js/translated/table_filters.js:383
-#: templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:286
+#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:360
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:314
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:381
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:325
-#: templates/js/translated/table_filters.js:696
+#: templates/js/translated/table_filters.js:301
+#: templates/js/translated/table_filters.js:660
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:302
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:307
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:311
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:312
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:317
msgid "Stock is available for use"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:322
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:351
+#: templates/js/translated/table_filters.js:327
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:356
+#: templates/js/translated/table_filters.js:332
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:360
+#: templates/js/translated/table_filters.js:336
msgid "In Production"
msgstr "正在生产"
-#: templates/js/translated/table_filters.js:361
+#: templates/js/translated/table_filters.js:337
msgid "Show items which are in production"
msgstr "显示正在生产的项目"
-#: templates/js/translated/table_filters.js:365
+#: templates/js/translated/table_filters.js:341
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:366
+#: templates/js/translated/table_filters.js:342
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:346
+msgid "Installed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:347
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:376
+#: templates/js/translated/table_filters.js:352
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:396
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:372
+#: templates/js/translated/table_filters.js:373
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:400
+#: templates/js/translated/table_filters.js:376
msgid "Has batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:409
+#: templates/js/translated/table_filters.js:385
msgid "Stock item is tracked by either batch code or serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:414
+#: templates/js/translated/table_filters.js:390
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:415
+#: templates/js/translated/table_filters.js:391
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:419
+#: templates/js/translated/table_filters.js:395
msgid "Expiry Date before"
msgstr ""
-#: templates/js/translated/table_filters.js:423
+#: templates/js/translated/table_filters.js:399
msgid "Expiry Date after"
msgstr ""
-#: templates/js/translated/table_filters.js:436
+#: templates/js/translated/table_filters.js:412
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:442
+#: templates/js/translated/table_filters.js:418
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:456
+#: templates/js/translated/table_filters.js:432
msgid "Test Passed"
msgstr ""
-#: templates/js/translated/table_filters.js:460
+#: templates/js/translated/table_filters.js:436
msgid "Include Installed Items"
msgstr ""
-#: templates/js/translated/table_filters.js:511
+#: templates/js/translated/table_filters.js:475
msgid "Build status"
msgstr "生产状态"
-#: templates/js/translated/table_filters.js:708
+#: templates/js/translated/table_filters.js:672
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:713
+#: templates/js/translated/table_filters.js:677
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:721
+#: templates/js/translated/table_filters.js:685
msgid "Available stock"
msgstr ""
-#: templates/js/translated/table_filters.js:729
-#: templates/js/translated/table_filters.js:825
+#: templates/js/translated/table_filters.js:693
+#: templates/js/translated/table_filters.js:789
#, fuzzy
#| msgid "Units"
msgid "Has Units"
msgstr "单位"
-#: templates/js/translated/table_filters.js:730
+#: templates/js/translated/table_filters.js:694
#, fuzzy
#| msgid "Parameter units"
msgid "Part has defined units"
msgstr "参数单位"
-#: templates/js/translated/table_filters.js:734
+#: templates/js/translated/table_filters.js:698
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:735
+#: templates/js/translated/table_filters.js:699
msgid "Part has internal part number"
msgstr "商品有内部编号"
-#: templates/js/translated/table_filters.js:739
+#: templates/js/translated/table_filters.js:703
msgid "In stock"
msgstr ""
-#: templates/js/translated/table_filters.js:747
+#: templates/js/translated/table_filters.js:711
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/table_filters.js:759
+#: templates/js/translated/table_filters.js:723
msgid "Has stocktake entries"
msgstr ""
-#: templates/js/translated/table_filters.js:821
+#: templates/js/translated/table_filters.js:785
#, fuzzy
#| msgid "Units"
msgid "Has Choices"
@@ -13665,51 +13442,38 @@ msgstr "权限"
msgid "Important dates"
msgstr "重要日期"
-#: users/models.py:240
+#: users/models.py:239
msgid "Permission set"
msgstr "权限设置"
-#: users/models.py:248
+#: users/models.py:247
msgid "Group"
msgstr "群组"
-#: users/models.py:251
+#: users/models.py:250
msgid "View"
msgstr "视图"
-#: users/models.py:251
+#: users/models.py:250
msgid "Permission to view items"
msgstr "查看项目权限"
-#: users/models.py:253
+#: users/models.py:252
msgid "Permission to add items"
msgstr "添加项目权限"
-#: users/models.py:255
+#: users/models.py:254
msgid "Change"
msgstr "更改"
-#: users/models.py:255
+#: users/models.py:254
msgid "Permissions to edit items"
msgstr "编辑项目权限"
-#: users/models.py:257
+#: users/models.py:256
msgid "Permission to delete items"
msgstr "删除项目权限"
-#, fuzzy
-#~| msgid "Chosen value is not a valid option"
-#~ msgid "Provided value is not a valid number"
-#~ msgstr "选择的值不是一个有效的选项"
-
-#~ msgid "This stock item has already been allocated to this build output"
-#~ msgstr "此库存项已被分配至此生产产出"
-
-#, fuzzy
-#~| msgid "Build Description"
-#~ msgid "Plugin Description"
-#~ msgstr "构建描述"
-
#~ msgid "Chinese"
#~ msgstr "中文(简体)"
@@ -13787,6 +13551,9 @@ msgstr "删除项目权限"
#~ msgid "This Build Order is allocated to Sales Order %(link)s"
#~ msgstr "此构建订单已分配给销售订单 %(link)s"
+#~ msgid "Printing Actions"
+#~ msgstr "打印操作"
+
#~ msgid "Print labels"
#~ msgstr "打印标签"
diff --git a/InvenTree/locale/zh_hant/LC_MESSAGES/django.po b/InvenTree/locale/zh_hant/LC_MESSAGES/django.po
index 0edb2c3550..ea1faff231 100644
--- a/InvenTree/locale/zh_hant/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh_hant/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-18 03:46+0000\n"
+"POT-Creation-Date: 2023-09-29 21:02+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,69 +18,71 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: InvenTree/api.py:65
+#: InvenTree/api.py:66
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:330
+#: InvenTree/api.py:335
msgid "User does not have permission to view this model"
msgstr ""
-#: InvenTree/conversion.py:92
+#: InvenTree/conversion.py:93
msgid "No value provided"
msgstr ""
-#: InvenTree/conversion.py:125
-#, python-brace-format
-msgid "Could not convert {original} to {unit}"
+#: InvenTree/conversion.py:115
+msgid "Provided value is not a valid number"
+msgstr ""
+
+#: InvenTree/conversion.py:117
+msgid "Provided value has an invalid unit"
+msgstr ""
+
+#: InvenTree/conversion.py:122
+msgid "Provided value could not be converted to the specified unit"
msgstr ""
#: InvenTree/conversion.py:127
-msgid "Invalid quantity supplied"
+msgid "Error"
msgstr ""
-#: InvenTree/conversion.py:141
-#, python-brace-format
-msgid "Invalid quantity supplied ({exc})"
-msgstr ""
-
-#: InvenTree/exceptions.py:89
+#: InvenTree/exceptions.py:90
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:127
+#: InvenTree/fields.py:131
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:200 InvenTree/models.py:784 build/serializers.py:433
-#: build/serializers.py:511 build/templates/build/sidebar.html:21
-#: company/models.py:732 company/templates/company/sidebar.html:37
-#: order/models.py:1088 order/templates/order/po_sidebar.html:11
+#: InvenTree/fields.py:206 InvenTree/models.py:801 build/serializers.py:435
+#: build/serializers.py:514 build/templates/build/sidebar.html:21
+#: company/models.py:737 company/templates/company/sidebar.html:37
+#: order/models.py:1102 order/templates/order/po_sidebar.html:11
#: order/templates/order/return_order_sidebar.html:9
#: order/templates/order/so_sidebar.html:17 part/admin.py:41
-#: part/models.py:3032 part/templates/part/part_sidebar.html:63
+#: part/models.py:3066 part/templates/part/part_sidebar.html:63
#: report/templates/report/inventree_build_order_base.html:172
-#: stock/admin.py:139 stock/models.py:2253 stock/models.py:2361
-#: stock/serializers.py:417 stock/serializers.py:551 stock/serializers.py:645
-#: stock/serializers.py:701 stock/serializers.py:1029 stock/serializers.py:1128
-#: stock/serializers.py:1289 stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259
+#: stock/admin.py:121 stock/models.py:2191 stock/models.py:2299
+#: stock/serializers.py:419 stock/serializers.py:553 stock/serializers.py:649
+#: stock/serializers.py:707 stock/serializers.py:999 stock/serializers.py:1098
+#: stock/serializers.py:1259 stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1254
#: templates/js/translated/company.js:1674 templates/js/translated/order.js:347
-#: templates/js/translated/part.js:1077
-#: templates/js/translated/purchase_order.js:2179
-#: templates/js/translated/return_order.js:773
+#: templates/js/translated/part.js:1061
+#: templates/js/translated/purchase_order.js:2175
+#: templates/js/translated/return_order.js:769
#: templates/js/translated/sales_order.js:1064
#: templates/js/translated/sales_order.js:1979
-#: templates/js/translated/stock.js:1516 templates/js/translated/stock.js:2398
+#: templates/js/translated/stock.js:1478 templates/js/translated/stock.js:2360
msgid "Notes"
msgstr ""
-#: InvenTree/format.py:148
+#: InvenTree/format.py:152
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:158
+#: InvenTree/format.py:162
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -104,99 +106,99 @@ msgstr ""
msgid "Old password"
msgstr ""
-#: InvenTree/forms.py:199
+#: InvenTree/forms.py:200
msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:203
+#: InvenTree/forms.py:204
msgid "Email address confirmation"
msgstr ""
-#: InvenTree/forms.py:224
+#: InvenTree/forms.py:225
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/forms.py:255 InvenTree/forms.py:261
+#: InvenTree/forms.py:256 InvenTree/forms.py:262
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/forms.py:267
+#: InvenTree/forms.py:268
msgid "The provided email domain is not approved."
msgstr ""
-#: InvenTree/forms.py:371
+#: InvenTree/forms.py:373
msgid "Registration is disabled."
msgstr ""
-#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615
+#: InvenTree/helpers.py:462 order/models.py:455 order/models.py:624
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:460
+#: InvenTree/helpers.py:470
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:490
+#: InvenTree/helpers.py:500
msgid "Duplicate serial"
msgstr ""
-#: InvenTree/helpers.py:523 InvenTree/helpers.py:558
+#: InvenTree/helpers.py:533 InvenTree/helpers.py:568
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:552
+#: InvenTree/helpers.py:562
#, python-brace-format
msgid "Group range {g} exceeds allowed quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598
+#: InvenTree/helpers.py:586 InvenTree/helpers.py:593 InvenTree/helpers.py:608
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:608
+#: InvenTree/helpers.py:618
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:611
+#: InvenTree/helpers.py:621
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/helpers.py:740
+#: InvenTree/helpers.py:751
msgid "Remove HTML tags from this value"
msgstr ""
-#: InvenTree/helpers_model.py:123
+#: InvenTree/helpers_model.py:125
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132
+#: InvenTree/helpers_model.py:129 InvenTree/helpers_model.py:134
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:129
+#: InvenTree/helpers_model.py:131
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:137
+#: InvenTree/helpers_model.py:139
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:140
+#: InvenTree/helpers_model.py:142
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:152
+#: InvenTree/helpers_model.py:154
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:157
+#: InvenTree/helpers_model.py:159
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:165
+#: InvenTree/helpers_model.py:167
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -212,252 +214,248 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/models.py:81
+#: InvenTree/models.py:82
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:85
+#: InvenTree/models.py:86
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:86
+#: InvenTree/models.py:87
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:312
+#: InvenTree/models.py:320
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:319
+#: InvenTree/models.py:327
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:325
+#: InvenTree/models.py:333
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:336
+#: InvenTree/models.py:345
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:343
+#: InvenTree/models.py:352
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:373
+#: InvenTree/models.py:383
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:455
+#: InvenTree/models.py:466
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:456
+#: InvenTree/models.py:467
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:475 stock/models.py:2355
+#: InvenTree/models.py:487 stock/models.py:2293
#: templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:326
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:476
+#: InvenTree/models.py:488
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:482 common/models.py:2853 company/models.py:128
-#: company/models.py:386 company/models.py:440 company/models.py:719
-#: order/models.py:234 order/models.py:1092 order/models.py:1450
-#: part/admin.py:39 part/models.py:897
+#: InvenTree/models.py:494 common/models.py:2770 company/models.py:128
+#: company/models.py:391 company/models.py:445 company/models.py:724
+#: order/models.py:240 order/models.py:1106 order/models.py:1466
+#: part/admin.py:39 part/models.py:905
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
-#: stock/admin.py:138 templates/js/translated/company.js:1309
+#: stock/admin.py:120 templates/js/translated/company.js:1309
#: templates/js/translated/company.js:1663 templates/js/translated/order.js:351
-#: templates/js/translated/part.js:2451
-#: templates/js/translated/purchase_order.js:2019
-#: templates/js/translated/purchase_order.js:2183
-#: templates/js/translated/return_order.js:777
+#: templates/js/translated/part.js:2430
+#: templates/js/translated/purchase_order.js:2015
+#: templates/js/translated/purchase_order.js:2179
+#: templates/js/translated/return_order.js:773
#: templates/js/translated/sales_order.js:1053
#: templates/js/translated/sales_order.js:1984
msgid "Link"
msgstr ""
-#: InvenTree/models.py:483 build/models.py:295 part/models.py:898
-#: stock/models.py:800
+#: InvenTree/models.py:495 build/models.py:295 part/models.py:906
+#: stock/models.py:735
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:486 templates/js/translated/attachment.js:120
+#: InvenTree/models.py:498 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:341
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:486
+#: InvenTree/models.py:498
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2313
-#: common/models.py:2314 common/models.py:2526 common/models.py:2527
-#: common/models.py:2783 common/models.py:2784 part/models.py:3040
-#: part/models.py:3125 part/models.py:3204 part/models.py:3224
-#: plugin/models.py:229 plugin/models.py:230
+#: InvenTree/models.py:504 InvenTree/models.py:505 common/models.py:2229
+#: common/models.py:2230 common/models.py:2443 common/models.py:2444
+#: common/models.py:2700 common/models.py:2701 part/models.py:3074
+#: part/models.py:3162 part/models.py:3241 part/models.py:3261
+#: plugin/models.py:224 plugin/models.py:225
#: report/templates/report/inventree_test_report_base.html:105
-#: templates/js/translated/stock.js:3007
+#: templates/js/translated/stock.js:2958
msgid "User"
msgstr ""
-#: InvenTree/models.py:496
+#: InvenTree/models.py:508
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:517
+#: InvenTree/models.py:530
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:526
+#: InvenTree/models.py:539
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:536
+#: InvenTree/models.py:549
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:539
+#: InvenTree/models.py:552
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:546
+#: InvenTree/models.py:559
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:553
+#: InvenTree/models.py:566
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:606
+#: InvenTree/models.py:621
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:624
+#: InvenTree/models.py:640
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:649 InvenTree/models.py:650 common/models.py:2512
-#: common/models.py:2958 company/models.py:524 label/models.py:119
-#: part/models.py:843 part/models.py:3422 plugin/models.py:42
-#: report/models.py:170 stock/models.py:71 stock/models.py:72
-#: templates/InvenTree/settings/mixins/urls.html:13
+#: InvenTree/models.py:665 InvenTree/models.py:666 common/models.py:2429
+#: common/models.py:2877 company/models.py:529 label/models.py:119
+#: part/models.py:851 part/models.py:3461 plugin/models.py:42
+#: report/models.py:164 templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:74
#: templates/InvenTree/settings/plugin_settings.html:22
#: templates/InvenTree/settings/settings_staff_js.html:67
-#: templates/InvenTree/settings/settings_staff_js.html:426
#: templates/js/translated/company.js:666
#: templates/js/translated/company.js:714
#: templates/js/translated/company.js:903
#: templates/js/translated/company.js:1155
-#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1183
-#: templates/js/translated/part.js:1471 templates/js/translated/part.js:1607
-#: templates/js/translated/part.js:2744 templates/js/translated/stock.js:2687
+#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1167
+#: templates/js/translated/part.js:1455 templates/js/translated/part.js:1591
+#: templates/js/translated/part.js:2723 templates/js/translated/stock.js:2649
msgid "Name"
msgstr ""
-#: InvenTree/models.py:656 build/models.py:168
+#: InvenTree/models.py:672 build/models.py:168
#: build/templates/build/detail.html:24 common/models.py:125
-#: company/models.py:446 company/models.py:725
+#: company/models.py:451 company/models.py:730
#: company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:126
-#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272
-#: part/models.py:865 part/models.py:3438 part/templates/part/category.html:81
+#: order/models.py:232 order/models.py:1130 part/admin.py:194 part/admin.py:276
+#: part/models.py:873 part/models.py:3477 part/templates/part/category.html:81
#: part/templates/part/part_base.html:172
-#: part/templates/part/part_scheduling.html:12 report/models.py:183
-#: report/models.py:611 report/models.py:654
+#: part/templates/part/part_scheduling.html:12 report/models.py:177
+#: report/models.py:580 report/models.py:624
#: report/templates/report/inventree_build_order_base.html:117
-#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:124
+#: stock/admin.py:41 stock/templates/stock/location.html:124
#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:27
#: templates/InvenTree/settings/settings_staff_js.html:151
-#: templates/InvenTree/settings/settings_staff_js.html:431
#: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963
-#: templates/js/translated/build.js:2121 templates/js/translated/company.js:518
+#: templates/js/translated/build.js:2109 templates/js/translated/company.js:518
#: templates/js/translated/company.js:1320
#: templates/js/translated/company.js:1631 templates/js/translated/index.js:119
-#: templates/js/translated/order.js:298 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1618
-#: templates/js/translated/part.js:1953 templates/js/translated/part.js:2350
-#: templates/js/translated/part.js:2780 templates/js/translated/part.js:2868
-#: templates/js/translated/plugin.js:79
-#: templates/js/translated/purchase_order.js:1685
-#: templates/js/translated/purchase_order.js:1828
-#: templates/js/translated/purchase_order.js:2001
+#: templates/js/translated/order.js:298 templates/js/translated/part.js:1219
+#: templates/js/translated/part.js:1464 templates/js/translated/part.js:1602
+#: templates/js/translated/part.js:1937 templates/js/translated/part.js:2329
+#: templates/js/translated/part.js:2759 templates/js/translated/part.js:2847
+#: templates/js/translated/purchase_order.js:1681
+#: templates/js/translated/purchase_order.js:1824
+#: templates/js/translated/purchase_order.js:1997
#: templates/js/translated/return_order.js:311
#: templates/js/translated/sales_order.js:799
#: templates/js/translated/sales_order.js:1809
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:2028
-#: templates/js/translated/stock.js:2719 templates/js/translated/stock.js:2802
+#: templates/js/translated/stock.js:1457 templates/js/translated/stock.js:1990
+#: templates/js/translated/stock.js:2681 templates/js/translated/stock.js:2753
msgid "Description"
msgstr ""
-#: InvenTree/models.py:657 stock/models.py:79
+#: InvenTree/models.py:673
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:665
+#: InvenTree/models.py:681
msgid "parent"
msgstr ""
-#: InvenTree/models.py:672 InvenTree/models.py:673
-#: templates/js/translated/part.js:2789 templates/js/translated/stock.js:2728
+#: InvenTree/models.py:688 InvenTree/models.py:689
+#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2690
msgid "Path"
msgstr ""
-#: InvenTree/models.py:785
+#: InvenTree/models.py:802
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:812
+#: InvenTree/models.py:829
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:813
+#: InvenTree/models.py:830
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:818
+#: InvenTree/models.py:835
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:819
+#: InvenTree/models.py:836
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:859
+#: InvenTree/models.py:881
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:912
+#: InvenTree/models.py:936
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:913
+#: InvenTree/models.py:937
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:59 part/models.py:3935
+#: InvenTree/serializers.py:60 part/models.py:3980
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:88 company/models.py:150
-#: company/templates/company/company_base.html:107 part/models.py:2879
+#: InvenTree/serializers.py:90 company/models.py:150
+#: company/templates/company/company_base.html:107 part/models.py:2913
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:91
+#: InvenTree/serializers.py:93
msgid "Select currency from available options"
msgstr ""
@@ -511,136 +509,136 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:712
+#: InvenTree/serializers.py:713
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
msgstr ""
-#: InvenTree/serializers.py:713
+#: InvenTree/serializers.py:714
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:726
+#: InvenTree/serializers.py:728
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:814
+#: InvenTree/settings.py:756
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:815
+#: InvenTree/settings.py:757
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:816
+#: InvenTree/settings.py:758
msgid "German"
msgstr ""
-#: InvenTree/settings.py:817
+#: InvenTree/settings.py:759
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:818
+#: InvenTree/settings.py:760
msgid "English"
msgstr ""
-#: InvenTree/settings.py:819
+#: InvenTree/settings.py:761
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:820
+#: InvenTree/settings.py:762
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:821
+#: InvenTree/settings.py:763
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:822
+#: InvenTree/settings.py:764
msgid "Finnish"
msgstr ""
-#: InvenTree/settings.py:823
+#: InvenTree/settings.py:765
msgid "French"
msgstr ""
-#: InvenTree/settings.py:824
+#: InvenTree/settings.py:766
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:825
+#: InvenTree/settings.py:767
msgid "Hindi"
msgstr ""
-#: InvenTree/settings.py:826
+#: InvenTree/settings.py:768
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:827
+#: InvenTree/settings.py:769
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:828
+#: InvenTree/settings.py:770
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:829
+#: InvenTree/settings.py:771
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:830
+#: InvenTree/settings.py:772
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:831
+#: InvenTree/settings.py:773
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:832
+#: InvenTree/settings.py:774
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:833
+#: InvenTree/settings.py:775
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:834
+#: InvenTree/settings.py:776
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:835
+#: InvenTree/settings.py:777
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:836
+#: InvenTree/settings.py:778
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:837
+#: InvenTree/settings.py:779
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:838
+#: InvenTree/settings.py:780
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:839
+#: InvenTree/settings.py:781
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:840
+#: InvenTree/settings.py:782
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:841
+#: InvenTree/settings.py:783
msgid "Chinese (Simplified)"
msgstr ""
-#: InvenTree/settings.py:842
+#: InvenTree/settings.py:784
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/status.py:68 part/serializers.py:993
+#: InvenTree/status.py:68 part/serializers.py:1000
msgid "Background worker check failed"
msgstr ""
@@ -655,7 +653,7 @@ msgstr ""
#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40
#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167
#: InvenTree/status_codes.py:188 generic/states/tests.py:16
-#: templates/js/translated/table_filters.js:594
+#: templates/js/translated/table_filters.js:558
msgid "Pending"
msgstr ""
@@ -689,7 +687,7 @@ msgstr ""
msgid "In Progress"
msgstr ""
-#: InvenTree/status_codes.py:42 order/models.py:1329
+#: InvenTree/status_codes.py:42 order/models.py:1345
#: templates/js/translated/sales_order.js:1520
#: templates/js/translated/sales_order.js:1641
#: templates/js/translated/sales_order.js:1954
@@ -724,7 +722,7 @@ msgstr ""
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:544
+#: InvenTree/status_codes.py:93 templates/js/translated/stock.js:510
msgid "Stock item created"
msgstr ""
@@ -780,7 +778,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1826
+#: InvenTree/status_codes.py:120 templates/js/translated/stock.js:1788
msgid "Merged stock items"
msgstr ""
@@ -800,7 +798,7 @@ msgstr ""
msgid "Build order output rejected"
msgstr ""
-#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1732
+#: InvenTree/status_codes.py:129 templates/js/translated/stock.js:1694
msgid "Consumed by build order"
msgstr ""
@@ -816,7 +814,7 @@ msgstr ""
msgid "Returned against Return Order"
msgstr ""
-#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:375
+#: InvenTree/status_codes.py:141 templates/js/translated/table_filters.js:351
msgid "Sent to customer"
msgstr ""
@@ -848,93 +846,93 @@ msgstr ""
msgid "Reject"
msgstr ""
-#: InvenTree/validators.py:31 InvenTree/validators.py:33
+#: InvenTree/validators.py:32 InvenTree/validators.py:34
msgid "Invalid physical unit"
msgstr ""
-#: InvenTree/validators.py:39
+#: InvenTree/validators.py:40
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:106 InvenTree/validators.py:122
+#: InvenTree/validators.py:109 InvenTree/validators.py:125
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:124
+#: InvenTree/validators.py:127
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:131
+#: InvenTree/validators.py:134
msgid "Invalid value for overage"
msgstr ""
-#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23
+#: InvenTree/views.py:405 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20
+#: InvenTree/views.py:417 templates/InvenTree/settings/user.html:20
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:437
+#: InvenTree/views.py:439
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:445
+#: InvenTree/views.py:447
msgid "Wrong password provided"
msgstr ""
-#: InvenTree/views.py:642 templates/navbar.html:157
+#: InvenTree/views.py:644 templates/navbar.html:157
msgid "System Information"
msgstr ""
-#: InvenTree/views.py:649 templates/navbar.html:168
+#: InvenTree/views.py:651 templates/navbar.html:168
msgid "About InvenTree"
msgstr ""
-#: build/api.py:237
+#: build/api.py:243
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:281 part/models.py:3827 templates/js/translated/bom.js:997
-#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2505
+#: build/api.py:287 part/models.py:3872 templates/js/translated/bom.js:997
+#: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2493
#: templates/js/translated/table_filters.js:190
-#: templates/js/translated/table_filters.js:579
+#: templates/js/translated/table_filters.js:543
msgid "Consumable"
msgstr ""
-#: build/api.py:282 part/models.py:3821 part/templates/part/upload_bom.html:58
+#: build/api.py:288 part/models.py:3866 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028
-#: templates/js/translated/build.js:2514
+#: templates/js/translated/build.js:2502
#: templates/js/translated/table_filters.js:186
#: templates/js/translated/table_filters.js:215
-#: templates/js/translated/table_filters.js:583
+#: templates/js/translated/table_filters.js:547
msgid "Optional"
msgstr ""
-#: build/api.py:283 templates/js/translated/table_filters.js:408
-#: templates/js/translated/table_filters.js:575
+#: build/api.py:289 templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:539
msgid "Tracked"
msgstr ""
-#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1725
-#: templates/js/translated/build.js:2605
+#: build/api.py:291 part/admin.py:64 templates/js/translated/build.js:1717
+#: templates/js/translated/build.js:2593
#: templates/js/translated/sales_order.js:1926
-#: templates/js/translated/table_filters.js:567
+#: templates/js/translated/table_filters.js:531
msgid "Allocated"
msgstr ""
-#: build/api.py:293 company/models.py:766
+#: build/api.py:301 company/models.py:772
#: company/templates/company/supplier_part.html:115
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
-#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2546
+#: templates/js/translated/bom.js:1157 templates/js/translated/build.js:2534
#: templates/js/translated/index.js:123
-#: templates/js/translated/model_renderers.js:226
-#: templates/js/translated/part.js:689 templates/js/translated/part.js:691
-#: templates/js/translated/part.js:696
-#: templates/js/translated/table_filters.js:340
-#: templates/js/translated/table_filters.js:571
+#: templates/js/translated/model_renderers.js:223
+#: templates/js/translated/part.js:673 templates/js/translated/part.js:675
+#: templates/js/translated/part.js:680
+#: templates/js/translated/table_filters.js:316
+#: templates/js/translated/table_filters.js:535
msgid "Available"
msgstr ""
@@ -943,7 +941,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:105
#: templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
-#: templates/js/translated/build.js:961 templates/js/translated/stock.js:2863
+#: templates/js/translated/build.js:953 templates/js/translated/stock.js:2814
msgid "Build Order"
msgstr ""
@@ -966,18 +964,18 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:160 order/models.py:363 order/models.py:768
-#: order/models.py:1086 order/models.py:1722 part/admin.py:274
-#: part/models.py:3836 part/templates/part/upload_bom.html:54
+#: build/models.py:160 order/models.py:372 order/models.py:778
+#: order/models.py:1100 order/models.py:1737 part/admin.py:278
+#: part/models.py:3881 part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:26
#: report/templates/report/inventree_so_report_base.html:28
#: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973
-#: templates/js/translated/build.js:2497 templates/js/translated/order.js:291
+#: templates/js/translated/build.js:2485 templates/js/translated/order.js:291
#: templates/js/translated/pricing.js:386
-#: templates/js/translated/purchase_order.js:2044
-#: templates/js/translated/return_order.js:726
+#: templates/js/translated/purchase_order.js:2040
+#: templates/js/translated/return_order.js:722
#: templates/js/translated/sales_order.js:1815
msgid "Reference"
msgstr ""
@@ -996,13 +994,13 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:185 build/templates/build/build_base.html:98
-#: build/templates/build/detail.html:29 company/models.py:907
-#: order/models.py:1193 order/models.py:1308 order/models.py:1309
-#: part/models.py:392 part/models.py:2892 part/models.py:3006
-#: part/models.py:3143 part/models.py:3162 part/models.py:3181
-#: part/models.py:3202 part/models.py:3294 part/models.py:3573
-#: part/models.py:3695 part/models.py:3801 part/models.py:4124
-#: part/serializers.py:952 part/serializers.py:1365
+#: build/templates/build/detail.html:29 company/models.py:915
+#: order/models.py:1208 order/models.py:1324 order/models.py:1325
+#: part/models.py:392 part/models.py:2926 part/models.py:3040
+#: part/models.py:3180 part/models.py:3199 part/models.py:3218
+#: part/models.py:3239 part/models.py:3331 part/models.py:3616
+#: part/models.py:3739 part/models.py:3846 part/models.py:4172
+#: part/serializers.py:958 part/serializers.py:1373
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1013,7 +1011,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:24
#: report/templates/report/inventree_slr_report.html:102
#: report/templates/report/inventree_so_report_base.html:27
-#: stock/serializers.py:206 stock/serializers.py:585
+#: stock/serializers.py:206 stock/serializers.py:587
#: templates/InvenTree/search.html:82
#: templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -1021,28 +1019,28 @@ msgstr ""
#: templates/email/overdue_build_order.html:16
#: templates/js/translated/barcode.js:529 templates/js/translated/bom.js:632
#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905
-#: templates/js/translated/build.js:1293 templates/js/translated/build.js:1724
-#: templates/js/translated/build.js:2144 templates/js/translated/build.js:2317
+#: templates/js/translated/build.js:1285 templates/js/translated/build.js:1716
+#: templates/js/translated/build.js:2132 templates/js/translated/build.js:2305
#: templates/js/translated/company.js:348
#: templates/js/translated/company.js:1106
#: templates/js/translated/company.js:1261
#: templates/js/translated/company.js:1549 templates/js/translated/index.js:109
-#: templates/js/translated/part.js:1938 templates/js/translated/part.js:2010
-#: templates/js/translated/part.js:2319 templates/js/translated/pricing.js:369
+#: templates/js/translated/part.js:1922 templates/js/translated/part.js:1994
+#: templates/js/translated/part.js:2298 templates/js/translated/pricing.js:369
#: templates/js/translated/purchase_order.js:757
#: templates/js/translated/purchase_order.js:1289
-#: templates/js/translated/purchase_order.js:1827
-#: templates/js/translated/purchase_order.js:1986
+#: templates/js/translated/purchase_order.js:1823
+#: templates/js/translated/purchase_order.js:1982
#: templates/js/translated/return_order.js:536
-#: templates/js/translated/return_order.js:707
+#: templates/js/translated/return_order.js:703
#: templates/js/translated/sales_order.js:297
#: templates/js/translated/sales_order.js:1194
#: templates/js/translated/sales_order.js:1595
#: templates/js/translated/sales_order.js:1793
-#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842
-#: templates/js/translated/stock.js:1058 templates/js/translated/stock.js:1967
-#: templates/js/translated/stock.js:2828 templates/js/translated/stock.js:3061
-#: templates/js/translated/stock.js:3202
+#: templates/js/translated/stock.js:642 templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:1020 templates/js/translated/stock.js:1929
+#: templates/js/translated/stock.js:2779 templates/js/translated/stock.js:3012
+#: templates/js/translated/stock.js:3149
msgid "Part"
msgstr ""
@@ -1058,8 +1056,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/serializers.py:942
-#: templates/js/translated/build.js:1712
+#: build/models.py:207 build/serializers.py:946
+#: templates/js/translated/build.js:1704
#: templates/js/translated/sales_order.js:1182
msgid "Source Location"
msgstr ""
@@ -1100,17 +1098,17 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:250 build/serializers.py:275 order/serializers.py:508
-#: stock/models.py:804 stock/serializers.py:1253
+#: build/models.py:250 build/serializers.py:277 order/serializers.py:512
+#: stock/models.py:739 stock/serializers.py:1223
#: templates/js/translated/purchase_order.js:1114
msgid "Batch Code"
msgstr ""
-#: build/models.py:254 build/serializers.py:276
+#: build/models.py:254 build/serializers.py:278
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:257 order/models.py:242 part/models.py:1035
+#: build/models.py:257 order/models.py:248 part/models.py:1043
#: part/templates/part/part_base.html:312
#: templates/js/translated/return_order.js:336
#: templates/js/translated/sales_order.js:824
@@ -1125,8 +1123,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:265 order/models.py:413 order/models.py:1765
-#: templates/js/translated/build.js:2229
+#: build/models.py:265 order/models.py:422 order/models.py:1780
+#: templates/js/translated/build.js:2217
msgid "Completion Date"
msgstr ""
@@ -1134,7 +1132,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:279 templates/js/translated/build.js:2189
+#: build/models.py:279 templates/js/translated/build.js:2177
msgid "Issued by"
msgstr ""
@@ -1143,16 +1141,16 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:288 build/templates/build/build_base.html:205
-#: build/templates/build/detail.html:122 order/models.py:256
+#: build/templates/build/detail.html:122 order/models.py:262
#: order/templates/order/order_base.html:217
#: order/templates/order/return_order_base.html:189
-#: order/templates/order/sales_order_base.html:229 part/models.py:1039
+#: order/templates/order/sales_order_base.html:229 part/models.py:1047
#: part/templates/part/part_base.html:392
#: report/templates/report/inventree_build_order_base.html:158
-#: templates/js/translated/build.js:2201
-#: templates/js/translated/purchase_order.js:1742
+#: templates/js/translated/build.js:2189
+#: templates/js/translated/purchase_order.js:1738
#: templates/js/translated/return_order.js:356
-#: templates/js/translated/table_filters.js:527
+#: templates/js/translated/table_filters.js:491
msgid "Responsible"
msgstr ""
@@ -1166,7 +1164,7 @@ msgstr ""
#: order/templates/order/order_base.html:167
#: order/templates/order/return_order_base.html:146
#: order/templates/order/sales_order_base.html:181
-#: part/templates/part/part_base.html:385 stock/models.py:798
+#: part/templates/part/part_base.html:385 stock/models.py:733
#: stock/templates/stock/item_base.html:201
#: templates/js/translated/company.js:1009
msgid "External Link"
@@ -1181,9 +1179,9 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:309 common/models.py:118 order/admin.py:17
-#: order/models.py:231 templates/InvenTree/settings/settings_staff_js.html:146
-#: templates/js/translated/build.js:2126
-#: templates/js/translated/purchase_order.js:1689
+#: order/models.py:237 templates/InvenTree/settings/settings_staff_js.html:146
+#: templates/js/translated/build.js:2114
+#: templates/js/translated/purchase_order.js:1685
#: templates/js/translated/return_order.js:315
#: templates/js/translated/sales_order.js:803
#: templates/js/translated/table_filters.js:48
@@ -1195,48 +1193,48 @@ msgstr ""
msgid "Project code for this build order"
msgstr ""
-#: build/models.py:545
+#: build/models.py:550
#, python-brace-format
msgid "Build order {build} has been completed"
msgstr ""
-#: build/models.py:551
+#: build/models.py:556
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:761 build/models.py:836
+#: build/models.py:766 build/models.py:844
msgid "No build output specified"
msgstr ""
-#: build/models.py:764
+#: build/models.py:769
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:767
+#: build/models.py:772
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:840 build/serializers.py:218 build/serializers.py:257
-#: build/serializers.py:815 order/models.py:444 order/serializers.py:381
-#: order/serializers.py:503 part/serializers.py:1207 part/serializers.py:1529
-#: stock/models.py:658 stock/models.py:1451 stock/serializers.py:390
+#: build/models.py:848 build/serializers.py:220 build/serializers.py:259
+#: build/serializers.py:819 order/models.py:453 order/serializers.py:385
+#: order/serializers.py:507 part/serializers.py:1215 part/serializers.py:1536
+#: stock/models.py:593 stock/models.py:1387 stock/serializers.py:392
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:845 build/serializers.py:223
+#: build/models.py:853 build/serializers.py:225
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1259
+#: build/models.py:1274
msgid "Build object"
msgstr ""
-#: build/models.py:1273 build/models.py:1531 build/serializers.py:205
-#: build/serializers.py:242 build/templates/build/build_base.html:103
-#: build/templates/build/detail.html:34 common/models.py:2335
-#: order/models.py:1073 order/models.py:1644 order/serializers.py:1254
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273
-#: part/forms.py:47 part/models.py:3019 part/models.py:3817
+#: build/models.py:1288 build/models.py:1548 build/serializers.py:206
+#: build/serializers.py:244 build/templates/build/build_base.html:103
+#: build/templates/build/detail.html:34 common/models.py:2251
+#: order/models.py:1086 order/models.py:1658 order/serializers.py:1261
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277
+#: part/forms.py:47 part/models.py:3053 part/models.py:3862
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1246,376 +1244,380 @@ msgstr ""
#: report/templates/report/inventree_so_report_base.html:29
#: report/templates/report/inventree_test_report_base.html:90
#: report/templates/report/inventree_test_report_base.html:170
-#: stock/admin.py:121 stock/serializers.py:381
+#: stock/admin.py:103 stock/serializers.py:383
#: stock/templates/stock/item_base.html:288
#: stock/templates/stock/item_base.html:296
#: stock/templates/stock/item_base.html:343
#: templates/email/build_order_completed.html:18
#: templates/js/translated/barcode.js:531 templates/js/translated/bom.js:771
#: templates/js/translated/bom.js:981 templates/js/translated/build.js:510
-#: templates/js/translated/build.js:726 templates/js/translated/build.js:1350
-#: templates/js/translated/build.js:1727 templates/js/translated/build.js:2339
+#: templates/js/translated/build.js:722 templates/js/translated/build.js:1342
+#: templates/js/translated/build.js:1719 templates/js/translated/build.js:2327
#: templates/js/translated/company.js:1808
-#: templates/js/translated/model_renderers.js:228
-#: templates/js/translated/order.js:304 templates/js/translated/part.js:958
-#: templates/js/translated/part.js:1808 templates/js/translated/part.js:3305
+#: templates/js/translated/model_renderers.js:225
+#: templates/js/translated/order.js:304 templates/js/translated/part.js:942
+#: templates/js/translated/part.js:1792 templates/js/translated/part.js:3284
#: templates/js/translated/pricing.js:381
#: templates/js/translated/pricing.js:474
#: templates/js/translated/pricing.js:522
#: templates/js/translated/pricing.js:616
#: templates/js/translated/purchase_order.js:760
-#: templates/js/translated/purchase_order.js:1831
-#: templates/js/translated/purchase_order.js:2050
+#: templates/js/translated/purchase_order.js:1827
+#: templates/js/translated/purchase_order.js:2046
#: templates/js/translated/sales_order.js:314
#: templates/js/translated/sales_order.js:1196
#: templates/js/translated/sales_order.js:1515
#: templates/js/translated/sales_order.js:1605
#: templates/js/translated/sales_order.js:1695
#: templates/js/translated/sales_order.js:1821
-#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702
-#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:2992
-#: templates/js/translated/stock.js:3073
+#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:668
+#: templates/js/translated/stock.js:839 templates/js/translated/stock.js:2943
+#: templates/js/translated/stock.js:3024
msgid "Quantity"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1289
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1354
+#: build/models.py:1371
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1363
+#: build/models.py:1380
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1373 order/models.py:1600
+#: build/models.py:1390 order/models.py:1614
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1379 order/models.py:1603
+#: build/models.py:1396 order/models.py:1617
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1385
+#: build/models.py:1402
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1446
+#: build/models.py:1463
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1518 build/serializers.py:795 order/serializers.py:1082
-#: order/serializers.py:1103 stock/serializers.py:488 stock/serializers.py:960
-#: stock/serializers.py:1086 stock/templates/stock/item_base.html:10
+#: build/models.py:1535 build/serializers.py:799 order/serializers.py:1087
+#: order/serializers.py:1108 stock/serializers.py:490 stock/serializers.py:930
+#: stock/serializers.py:1056 stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:195
-#: templates/js/translated/build.js:1726
+#: templates/js/translated/build.js:1718
#: templates/js/translated/sales_order.js:298
#: templates/js/translated/sales_order.js:1195
#: templates/js/translated/sales_order.js:1496
#: templates/js/translated/sales_order.js:1501
#: templates/js/translated/sales_order.js:1602
#: templates/js/translated/sales_order.js:1689
-#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843
-#: templates/js/translated/stock.js:2948
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:809
+#: templates/js/translated/stock.js:2899
msgid "Stock Item"
msgstr ""
-#: build/models.py:1519
+#: build/models.py:1536
msgid "Source stock item"
msgstr ""
-#: build/models.py:1532
+#: build/models.py:1549
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1540
+#: build/models.py:1557
msgid "Install into"
msgstr ""
-#: build/models.py:1541
+#: build/models.py:1558
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:155 build/serializers.py:824
-#: templates/js/translated/build.js:1303
+#: build/serializers.py:156 build/serializers.py:828
+#: templates/js/translated/build.js:1295
msgid "Build Output"
msgstr ""
-#: build/serializers.py:167
+#: build/serializers.py:168
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:171
+#: build/serializers.py:172
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:175
+#: build/serializers.py:176
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:186
+#: build/serializers.py:187
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:206 build/serializers.py:243
+#: build/serializers.py:207 build/serializers.py:245
msgid "Enter quantity for build output"
msgstr ""
-#: build/serializers.py:264
+#: build/serializers.py:266
msgid "Integer quantity required for trackable parts"
msgstr ""
-#: build/serializers.py:267
+#: build/serializers.py:269
msgid "Integer quantity required, as the bill of materials contains trackable parts"
msgstr ""
-#: build/serializers.py:282 order/serializers.py:516 order/serializers.py:1258
-#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1138
-#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565
+#: build/serializers.py:284 order/serializers.py:520 order/serializers.py:1265
+#: stock/serializers.py:401 templates/js/translated/purchase_order.js:1138
+#: templates/js/translated/stock.js:333 templates/js/translated/stock.js:531
msgid "Serial Numbers"
msgstr ""
-#: build/serializers.py:283
+#: build/serializers.py:285
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/serializers.py:296
+#: build/serializers.py:298
msgid "Auto Allocate Serial Numbers"
msgstr ""
-#: build/serializers.py:297
+#: build/serializers.py:299
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:332 stock/api.py:788
+#: build/serializers.py:334 stock/api.py:736
msgid "The following serial numbers already exist or are invalid"
msgstr ""
-#: build/serializers.py:383 build/serializers.py:445 build/serializers.py:523
+#: build/serializers.py:385 build/serializers.py:447 build/serializers.py:526
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:489
-#: order/serializers.py:608 order/serializers.py:1606 part/serializers.py:964
-#: stock/serializers.py:410 stock/serializers.py:546 stock/serializers.py:640
-#: stock/serializers.py:1121 stock/serializers.py:1392
+#: build/serializers.py:423 build/serializers.py:496 order/serializers.py:493
+#: order/serializers.py:612 order/serializers.py:1616 part/serializers.py:970
+#: stock/serializers.py:412 stock/serializers.py:548 stock/serializers.py:644
+#: stock/serializers.py:1091 stock/serializers.py:1362
#: stock/templates/stock/item_base.html:395
#: templates/js/translated/barcode.js:530
-#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:988
-#: templates/js/translated/build.js:2354
+#: templates/js/translated/barcode.js:778 templates/js/translated/build.js:980
+#: templates/js/translated/build.js:2342
#: templates/js/translated/purchase_order.js:1163
#: templates/js/translated/purchase_order.js:1253
#: templates/js/translated/sales_order.js:1508
#: templates/js/translated/sales_order.js:1616
#: templates/js/translated/sales_order.js:1624
#: templates/js/translated/sales_order.js:1703
-#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844
-#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:2171
-#: templates/js/translated/stock.js:2842
+#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:810
+#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:2133
+#: templates/js/translated/stock.js:2793
msgid "Location"
msgstr ""
-#: build/serializers.py:422
+#: build/serializers.py:424
msgid "Stock location for scrapped outputs"
msgstr ""
-#: build/serializers.py:428
+#: build/serializers.py:430
msgid "Discard Allocations"
msgstr ""
-#: build/serializers.py:429
+#: build/serializers.py:431
msgid "Discard any stock allocations for scrapped outputs"
msgstr ""
-#: build/serializers.py:434
+#: build/serializers.py:436
msgid "Reason for scrapping build output(s)"
msgstr ""
-#: build/serializers.py:494
+#: build/serializers.py:497
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:500 build/templates/build/build_base.html:152
-#: build/templates/build/detail.html:62 order/models.py:794
-#: order/models.py:1748 order/serializers.py:526 stock/admin.py:124
-#: stock/serializers.py:697 stock/serializers.py:1260
+#: build/serializers.py:503 build/templates/build/build_base.html:152
+#: build/templates/build/detail.html:62 order/models.py:804
+#: order/models.py:1763 order/serializers.py:530 stock/admin.py:106
+#: stock/serializers.py:703 stock/serializers.py:1230
#: stock/templates/stock/item_base.html:428
-#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2173
+#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2161
#: templates/js/translated/purchase_order.js:1293
-#: templates/js/translated/purchase_order.js:1701
+#: templates/js/translated/purchase_order.js:1697
#: templates/js/translated/return_order.js:328
#: templates/js/translated/sales_order.js:816
-#: templates/js/translated/stock.js:2146 templates/js/translated/stock.js:2966
-#: templates/js/translated/stock.js:3089
+#: templates/js/translated/stock.js:2108 templates/js/translated/stock.js:2917
+#: templates/js/translated/stock.js:3040
msgid "Status"
msgstr ""
-#: build/serializers.py:506
+#: build/serializers.py:509
msgid "Accept Incomplete Allocation"
msgstr ""
-#: build/serializers.py:507
+#: build/serializers.py:510
msgid "Complete outputs if stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:576
+#: build/serializers.py:579
msgid "Remove Allocated Stock"
msgstr ""
-#: build/serializers.py:577
+#: build/serializers.py:580
msgid "Subtract any stock which has already been allocated to this build"
msgstr ""
-#: build/serializers.py:583
+#: build/serializers.py:586
msgid "Remove Incomplete Outputs"
msgstr ""
-#: build/serializers.py:584
+#: build/serializers.py:587
msgid "Delete any build outputs which have not been completed"
msgstr ""
-#: build/serializers.py:611
+#: build/serializers.py:614
msgid "Not permitted"
msgstr ""
-#: build/serializers.py:612
+#: build/serializers.py:615
msgid "Accept as consumed by this build order"
msgstr ""
-#: build/serializers.py:613
+#: build/serializers.py:616
msgid "Deallocate before completing this build order"
msgstr ""
-#: build/serializers.py:635
+#: build/serializers.py:639
msgid "Overallocated Stock"
msgstr ""
-#: build/serializers.py:637
+#: build/serializers.py:641
msgid "How do you want to handle extra stock items assigned to the build order"
msgstr ""
-#: build/serializers.py:647
+#: build/serializers.py:651
msgid "Some stock items have been overallocated"
msgstr ""
-#: build/serializers.py:652
+#: build/serializers.py:656
msgid "Accept Unallocated"
msgstr ""
-#: build/serializers.py:653
+#: build/serializers.py:657
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:663 templates/js/translated/build.js:304
+#: build/serializers.py:667 templates/js/translated/build.js:304
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/serializers.py:668 order/serializers.py:264 order/serializers.py:1150
+#: build/serializers.py:672 order/serializers.py:267 order/serializers.py:1155
msgid "Accept Incomplete"
msgstr ""
-#: build/serializers.py:669
+#: build/serializers.py:673
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:679 templates/js/translated/build.js:308
+#: build/serializers.py:683 templates/js/translated/build.js:308
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/serializers.py:688 templates/js/translated/build.js:292
+#: build/serializers.py:692 templates/js/translated/build.js:292
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:718
+#: build/serializers.py:722
msgid "Build Line"
msgstr ""
-#: build/serializers.py:728
+#: build/serializers.py:732
msgid "Build output"
msgstr ""
-#: build/serializers.py:736
+#: build/serializers.py:740
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:772
+#: build/serializers.py:776
msgid "Build Line Item"
msgstr ""
-#: build/serializers.py:786
+#: build/serializers.py:790
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:801 stock/serializers.py:973
+#: build/serializers.py:805 stock/serializers.py:943
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:849 order/serializers.py:1140
+#: build/serializers.py:853 order/serializers.py:1145
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:855
+#: build/serializers.py:859
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:862
+#: build/serializers.py:866
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:886 order/serializers.py:1422
+#: build/serializers.py:871
+msgid "This stock item has already been allocated to this build output"
+msgstr ""
+
+#: build/serializers.py:894 order/serializers.py:1429
msgid "Allocation items must be provided"
msgstr ""
-#: build/serializers.py:943
+#: build/serializers.py:947
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
msgstr ""
-#: build/serializers.py:951
+#: build/serializers.py:955
msgid "Exclude Location"
msgstr ""
-#: build/serializers.py:952
+#: build/serializers.py:956
msgid "Exclude stock items from this selected location"
msgstr ""
-#: build/serializers.py:957
+#: build/serializers.py:961
msgid "Interchangeable Stock"
msgstr ""
-#: build/serializers.py:958
+#: build/serializers.py:962
msgid "Stock items in multiple locations can be used interchangeably"
msgstr ""
-#: build/serializers.py:963
+#: build/serializers.py:967
msgid "Substitute Stock"
msgstr ""
-#: build/serializers.py:964
+#: build/serializers.py:968
msgid "Allow allocation of substitute parts"
msgstr ""
-#: build/serializers.py:969
+#: build/serializers.py:973
msgid "Optional Items"
msgstr ""
-#: build/serializers.py:970
+#: build/serializers.py:974
msgid "Allocate optional BOM items to build order"
msgstr ""
-#: build/tasks.py:149
+#: build/tasks.py:150
msgid "Stock required for build order"
msgstr ""
-#: build/tasks.py:166
+#: build/tasks.py:168
msgid "Overdue Build Order"
msgstr ""
-#: build/tasks.py:171
+#: build/tasks.py:173
#, python-brace-format
msgid "Build order {bo} is now overdue"
msgstr ""
@@ -1732,16 +1734,16 @@ msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
#: build/templates/build/build_base.html:161
-#: build/templates/build/detail.html:138 order/models.py:238
-#: order/models.py:1098 order/templates/order/order_base.html:186
+#: build/templates/build/detail.html:138 order/models.py:244
+#: order/models.py:1112 order/templates/order/order_base.html:186
#: order/templates/order/return_order_base.html:165
#: order/templates/order/sales_order_base.html:193
#: report/templates/report/inventree_build_order_base.html:125
-#: templates/js/translated/build.js:2221 templates/js/translated/part.js:1826
-#: templates/js/translated/purchase_order.js:1718
-#: templates/js/translated/purchase_order.js:2126
+#: templates/js/translated/build.js:2209 templates/js/translated/part.js:1810
+#: templates/js/translated/purchase_order.js:1714
+#: templates/js/translated/purchase_order.js:2122
#: templates/js/translated/return_order.js:344
-#: templates/js/translated/return_order.js:748
+#: templates/js/translated/return_order.js:744
#: templates/js/translated/sales_order.js:832
#: templates/js/translated/sales_order.js:1864
msgid "Target Date"
@@ -1758,9 +1760,9 @@ msgstr ""
#: order/templates/order/return_order_base.html:118
#: order/templates/order/sales_order_base.html:123
#: templates/js/translated/table_filters.js:98
-#: templates/js/translated/table_filters.js:520
-#: templates/js/translated/table_filters.js:622
-#: templates/js/translated/table_filters.js:663
+#: templates/js/translated/table_filters.js:484
+#: templates/js/translated/table_filters.js:586
+#: templates/js/translated/table_filters.js:627
msgid "Overdue"
msgstr ""
@@ -1770,8 +1772,8 @@ msgid "Completed Outputs"
msgstr ""
#: build/templates/build/build_base.html:191
-#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301
-#: order/models.py:1400 order/models.py:1548
+#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1317
+#: order/models.py:1416 order/models.py:1564
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:135
@@ -1781,7 +1783,7 @@ msgstr ""
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:766
#: templates/js/translated/sales_order.js:989
-#: templates/js/translated/stock.js:2895
+#: templates/js/translated/stock.js:2846
msgid "Sales Order"
msgstr ""
@@ -1793,7 +1795,7 @@ msgid "Issued By"
msgstr ""
#: build/templates/build/build_base.html:212
-#: build/templates/build/detail.html:94 templates/js/translated/build.js:2138
+#: build/templates/build/detail.html:94 templates/js/translated/build.js:2126
msgid "Priority"
msgstr ""
@@ -1821,8 +1823,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:1220
-#: templates/js/translated/purchase_order.js:2168
+#: build/templates/build/detail.html:49 order/models.py:1235
+#: templates/js/translated/purchase_order.js:2164
msgid "Destination"
msgstr ""
@@ -1834,15 +1836,15 @@ msgstr ""
msgid "Allocated Parts"
msgstr ""
-#: build/templates/build/detail.html:80 stock/admin.py:123
+#: build/templates/build/detail.html:80 stock/admin.py:105
#: stock/templates/stock/item_base.html:163
-#: templates/js/translated/build.js:1361
-#: templates/js/translated/model_renderers.js:233
+#: templates/js/translated/build.js:1353
+#: templates/js/translated/model_renderers.js:230
#: templates/js/translated/purchase_order.js:1259
-#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:2160
-#: templates/js/translated/stock.js:3096
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:404
+#: templates/js/translated/stock.js:1092 templates/js/translated/stock.js:2122
+#: templates/js/translated/stock.js:3047
+#: templates/js/translated/table_filters.js:289
+#: templates/js/translated/table_filters.js:380
msgid "Batch"
msgstr ""
@@ -1850,7 +1852,7 @@ msgstr ""
#: order/templates/order/order_base.html:173
#: order/templates/order/return_order_base.html:152
#: order/templates/order/sales_order_base.html:187
-#: templates/js/translated/build.js:2181
+#: templates/js/translated/build.js:2169
msgid "Created"
msgstr ""
@@ -1860,7 +1862,7 @@ msgstr ""
#: build/templates/build/detail.html:149
#: order/templates/order/sales_order_base.html:203
-#: templates/js/translated/table_filters.js:685
+#: templates/js/translated/table_filters.js:649
msgid "Completed"
msgstr ""
@@ -2007,11 +2009,11 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:71
+#: common/models.py:70
msgid "Updated"
msgstr ""
-#: common/models.py:72
+#: common/models.py:71
msgid "Timestamp of last update"
msgstr ""
@@ -2023,1467 +2025,1438 @@ msgstr ""
msgid "Project description"
msgstr ""
-#: common/models.py:640
+#: common/models.py:595
msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:642
+#: common/models.py:597
msgid "Settings value"
msgstr ""
-#: common/models.py:683
+#: common/models.py:638
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:700
+#: common/models.py:655
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:711
+#: common/models.py:666
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:750
+#: common/models.py:705
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:955
+#: common/models.py:912
msgid "No group"
msgstr ""
-#: common/models.py:980
+#: common/models.py:937
msgid "An empty domain is not allowed."
msgstr ""
-#: common/models.py:982
+#: common/models.py:939
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/models.py:994
-msgid "No plugin"
-msgstr ""
-
-#: common/models.py:1060
+#: common/models.py:996
msgid "Restart required"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:997
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:1068
-msgid "Pending migrations"
-msgstr ""
-
-#: common/models.py:1069
-msgid "Number of pending database migrations"
-msgstr ""
-
-#: common/models.py:1075
+#: common/models.py:1004
msgid "Server Instance Name"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1006
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1011
msgid "Use instance name"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1012
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1018
msgid "Restrict showing `about`"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1019
msgid "Show the `about` modal only to superusers"
msgstr ""
-#: common/models.py:1096 company/models.py:101 company/models.py:102
+#: common/models.py:1025 company/models.py:101 company/models.py:102
msgid "Company name"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1026
msgid "Internal company name"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1031
msgid "Base URL"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1032
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1039
msgid "Default Currency"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1040
msgid "Select base currency for pricing calculations"
msgstr ""
-#: common/models.py:1118
-msgid "Currency Update Interval"
-msgstr ""
-
-#: common/models.py:1119
-msgid "How often to update exchange rates (set to zero to disable)"
-msgstr ""
-
-#: common/models.py:1121 common/models.py:1185 common/models.py:1203
-#: common/models.py:1210 common/models.py:1221 common/models.py:1232
-#: common/models.py:1463 common/models.py:1487 common/models.py:1606
-#: common/models.py:1862
-msgid "days"
-msgstr ""
-
-#: common/models.py:1129
-msgid "Currency Update Plugin"
-msgstr ""
-
-#: common/models.py:1130
-msgid "Currency update plugin to use"
-msgstr ""
-
-#: common/models.py:1136
+#: common/models.py:1047
msgid "Download from URL"
msgstr ""
-#: common/models.py:1137
+#: common/models.py:1048
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1054
msgid "Download Size Limit"
msgstr ""
-#: common/models.py:1144
+#: common/models.py:1055
msgid "Maximum allowable download size for remote image"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1066
msgid "User-agent used to download from URL"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1067
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1072
msgid "Require confirm"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1073
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1079
msgid "Tree Depth"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1080
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
msgstr ""
-#: common/models.py:1178
+#: common/models.py:1089
msgid "Update Check Interval"
msgstr ""
-#: common/models.py:1179
+#: common/models.py:1090
msgid "How often to check for updates (set to zero to disable)"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1096 common/models.py:1114 common/models.py:1121
+#: common/models.py:1132 common/models.py:1143 common/models.py:1374
+#: common/models.py:1398 common/models.py:1521 common/models.py:1777
+msgid "days"
+msgstr ""
+
+#: common/models.py:1100
msgid "Automatic Backup"
msgstr ""
-#: common/models.py:1190
+#: common/models.py:1101
msgid "Enable automatic backup of database and media files"
msgstr ""
-#: common/models.py:1196
+#: common/models.py:1107
msgid "Auto Backup Interval"
msgstr ""
-#: common/models.py:1197
+#: common/models.py:1108
msgid "Specify number of days between automated backup events"
msgstr ""
-#: common/models.py:1207
+#: common/models.py:1118
msgid "Task Deletion Interval"
msgstr ""
-#: common/models.py:1208
+#: common/models.py:1119
msgid "Background task results will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1218
+#: common/models.py:1129
msgid "Error Log Deletion Interval"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1130
msgid "Error logs will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1229
+#: common/models.py:1140
msgid "Notification Deletion Interval"
msgstr ""
-#: common/models.py:1230
+#: common/models.py:1141
msgid "User notifications will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1240 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:1151 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:1241
-msgid "Enable barcode scanner support in the web interface"
+#: common/models.py:1152
+msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1158
msgid "Barcode Input Delay"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1159
msgid "Barcode input processing delay time"
msgstr ""
-#: common/models.py:1258
+#: common/models.py:1169
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:1259
+#: common/models.py:1170
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:1265
+#: common/models.py:1176
msgid "Part Revisions"
msgstr ""
-#: common/models.py:1266
+#: common/models.py:1177
msgid "Enable revision field for Part"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1183
msgid "IPN Regex"
msgstr ""
-#: common/models.py:1273
+#: common/models.py:1184
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:1277
+#: common/models.py:1188
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:1278
+#: common/models.py:1189
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:1284
+#: common/models.py:1195
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:1285
+#: common/models.py:1196
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:1291
+#: common/models.py:1202
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:1292
+#: common/models.py:1203
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:1298
+#: common/models.py:1209
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:1299
+#: common/models.py:1210
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:1305
+#: common/models.py:1216
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:1306
+#: common/models.py:1217
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:1312
+#: common/models.py:1223
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:1313
+#: common/models.py:1224
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1319 part/admin.py:55 part/models.py:3578
-#: report/models.py:176 templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:763
+#: common/models.py:1230 part/admin.py:55 part/models.py:3621
+#: report/models.py:170 templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:727
msgid "Template"
msgstr ""
-#: common/models.py:1320
+#: common/models.py:1231
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1326 part/admin.py:51 part/admin.py:279 part/models.py:993
-#: templates/js/translated/bom.js:1633
-#: templates/js/translated/table_filters.js:330
-#: templates/js/translated/table_filters.js:717
+#: common/models.py:1237 part/admin.py:51 part/admin.py:283 part/models.py:1001
+#: templates/js/translated/bom.js:1628
+#: templates/js/translated/table_filters.js:306
+#: templates/js/translated/table_filters.js:681
msgid "Assembly"
msgstr ""
-#: common/models.py:1327
+#: common/models.py:1238
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1333 part/admin.py:52 part/models.py:999
-#: templates/js/translated/table_filters.js:725
+#: common/models.py:1244 part/admin.py:52 part/models.py:1007
+#: templates/js/translated/table_filters.js:689
msgid "Component"
msgstr ""
-#: common/models.py:1334
+#: common/models.py:1245
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1340 part/admin.py:53 part/models.py:1010
+#: common/models.py:1251 part/admin.py:53 part/models.py:1018
msgid "Purchaseable"
msgstr ""
-#: common/models.py:1341
+#: common/models.py:1252
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1347 part/admin.py:54 part/models.py:1015
-#: templates/js/translated/table_filters.js:751
+#: common/models.py:1258 part/admin.py:54 part/models.py:1023
+#: templates/js/translated/table_filters.js:715
msgid "Salable"
msgstr ""
-#: common/models.py:1348
+#: common/models.py:1259
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1354 part/admin.py:56 part/models.py:1005
+#: common/models.py:1265 part/admin.py:56 part/models.py:1013
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:767
+#: templates/js/translated/table_filters.js:731
msgid "Trackable"
msgstr ""
-#: common/models.py:1355
+#: common/models.py:1266
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1361 part/admin.py:57 part/models.py:1025
+#: common/models.py:1272 part/admin.py:57 part/models.py:1033
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:771
+#: templates/js/translated/table_filters.js:735
msgid "Virtual"
msgstr ""
-#: common/models.py:1362
+#: common/models.py:1273
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:1368
+#: common/models.py:1279
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:1369
+#: common/models.py:1280
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:1375
+#: common/models.py:1286
msgid "Show related parts"
msgstr ""
-#: common/models.py:1376
+#: common/models.py:1287
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1382
+#: common/models.py:1293
msgid "Initial Stock Data"
msgstr ""
-#: common/models.py:1383
+#: common/models.py:1294
msgid "Allow creation of initial stock when adding a new part"
msgstr ""
-#: common/models.py:1389 templates/js/translated/part.js:107
+#: common/models.py:1300 templates/js/translated/part.js:107
msgid "Initial Supplier Data"
msgstr ""
-#: common/models.py:1390
+#: common/models.py:1301
msgid "Allow creation of initial supplier data when adding a new part"
msgstr ""
-#: common/models.py:1396
+#: common/models.py:1307
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1397
+#: common/models.py:1308
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1404
+#: common/models.py:1315
msgid "Part Category Default Icon"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1316
msgid "Part category default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1410
+#: common/models.py:1321
msgid "Enforce Parameter Units"
msgstr ""
-#: common/models.py:1411
+#: common/models.py:1322
msgid "If units are provided, parameter values must match the specified units"
msgstr ""
-#: common/models.py:1417
+#: common/models.py:1328
msgid "Minimum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1418
+#: common/models.py:1329
msgid "Minimum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1428
+#: common/models.py:1339
msgid "Maximum Pricing Decimal Places"
msgstr ""
-#: common/models.py:1429
+#: common/models.py:1340
msgid "Maximum number of decimal places to display when rendering pricing data"
msgstr ""
-#: common/models.py:1439
+#: common/models.py:1350
msgid "Use Supplier Pricing"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1351
msgid "Include supplier price breaks in overall pricing calculations"
msgstr ""
-#: common/models.py:1446
+#: common/models.py:1357
msgid "Purchase History Override"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1358
msgid "Historical purchase order pricing overrides supplier price breaks"
msgstr ""
-#: common/models.py:1453
+#: common/models.py:1364
msgid "Use Stock Item Pricing"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1365
msgid "Use pricing from manually entered stock data for pricing calculations"
msgstr ""
-#: common/models.py:1460
+#: common/models.py:1371
msgid "Stock Item Pricing Age"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1372
msgid "Exclude stock items older than this number of days from pricing calculations"
msgstr ""
-#: common/models.py:1471
+#: common/models.py:1382
msgid "Use Variant Pricing"
msgstr ""
-#: common/models.py:1472
+#: common/models.py:1383
msgid "Include variant pricing in overall pricing calculations"
msgstr ""
-#: common/models.py:1478
+#: common/models.py:1389
msgid "Active Variants Only"
msgstr ""
-#: common/models.py:1479
+#: common/models.py:1390
msgid "Only use active variant parts for calculating variant pricing"
msgstr ""
-#: common/models.py:1485
+#: common/models.py:1396
msgid "Pricing Rebuild Interval"
msgstr ""
-#: common/models.py:1486
+#: common/models.py:1397
msgid "Number of days before part pricing is automatically updated"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1407
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1408
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1414
msgid "Internal Price Override"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1415
msgid "If available, internal prices override price range calculations"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1421
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1422
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1428
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1429
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1527
+#: common/models.py:1438
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1528
+#: common/models.py:1439
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1534 templates/stats.html:25
+#: common/models.py:1445 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1535
+#: common/models.py:1446
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1541 report/models.py:197
+#: common/models.py:1452
msgid "Page Size"
msgstr ""
-#: common/models.py:1542
+#: common/models.py:1453
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1548
+#: common/models.py:1463
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1549
+#: common/models.py:1464
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1555
+#: common/models.py:1470
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1556
+#: common/models.py:1471
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1562
+#: common/models.py:1477
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1563
+#: common/models.py:1478
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1569
+#: common/models.py:1484
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1570
+#: common/models.py:1485
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1576
+#: common/models.py:1491
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1577
+#: common/models.py:1492
msgid "Determines default behaviour when a stock item is depleted"
msgstr ""
-#: common/models.py:1583
+#: common/models.py:1498
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1584
+#: common/models.py:1499
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1589
+#: common/models.py:1504
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1590
+#: common/models.py:1505
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1596
+#: common/models.py:1511
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1597
+#: common/models.py:1512
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1603
+#: common/models.py:1518
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1604
+#: common/models.py:1519
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1611
+#: common/models.py:1526
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1612
+#: common/models.py:1527
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1618
+#: common/models.py:1533
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1619
+#: common/models.py:1534
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1625
+#: common/models.py:1540
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1626
+#: common/models.py:1541
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1631
+#: common/models.py:1546
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1632
+#: common/models.py:1547
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1638
+#: common/models.py:1553
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1639
+#: common/models.py:1554
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1645
+#: common/models.py:1560
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1646
+#: common/models.py:1561
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1652
+#: common/models.py:1567
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1653
+#: common/models.py:1568
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1659
+#: common/models.py:1574
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1660
+#: common/models.py:1575
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1666
+#: common/models.py:1581
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1667
+#: common/models.py:1582
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1673
+#: common/models.py:1588
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1674
+#: common/models.py:1589
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1680
+#: common/models.py:1595
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1681
+#: common/models.py:1596
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1687
+#: common/models.py:1602
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1688
+#: common/models.py:1603
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1694
+#: common/models.py:1609
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1695
+#: common/models.py:1610
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1702
+#: common/models.py:1617
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1703
+#: common/models.py:1618
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1709
+#: common/models.py:1624
msgid "Enable registration"
msgstr ""
-#: common/models.py:1710
+#: common/models.py:1625
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1716
+#: common/models.py:1631
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1717
+#: common/models.py:1632
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1638
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1724
+#: common/models.py:1639
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1730
+#: common/models.py:1645
msgid "Email required"
msgstr ""
-#: common/models.py:1731
+#: common/models.py:1646
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1737
+#: common/models.py:1652
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1738
+#: common/models.py:1653
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1659
msgid "Mail twice"
msgstr ""
-#: common/models.py:1745
+#: common/models.py:1660
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1751
+#: common/models.py:1666
msgid "Password twice"
msgstr ""
-#: common/models.py:1752
+#: common/models.py:1667
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1758
+#: common/models.py:1673
msgid "Allowed domains"
msgstr ""
-#: common/models.py:1759
+#: common/models.py:1674
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:1765
+#: common/models.py:1680
msgid "Group on signup"
msgstr ""
-#: common/models.py:1766
+#: common/models.py:1681
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1772
+#: common/models.py:1687
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1773
+#: common/models.py:1688
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1779
+#: common/models.py:1694
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1780
+#: common/models.py:1695
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1703
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1704
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1711
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1797
+#: common/models.py:1712
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1719
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1805
+#: common/models.py:1720
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1727
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1813
+#: common/models.py:1728
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1820
+#: common/models.py:1735
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1821
+#: common/models.py:1736
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1828
+#: common/models.py:1743
msgid "Enable project codes"
msgstr ""
-#: common/models.py:1829
+#: common/models.py:1744
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:1835
+#: common/models.py:1750
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1751
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:1842
+#: common/models.py:1757
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1758
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:1849
+#: common/models.py:1764
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:1850
+#: common/models.py:1765
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:1859
+#: common/models.py:1774
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1775
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:1877 common/models.py:2306
+#: common/models.py:1792 common/models.py:2222
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1917
+#: common/models.py:1833
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1834
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1840
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1925
+#: common/models.py:1841
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1931
+#: common/models.py:1847
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1932
+#: common/models.py:1848
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1854
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1939
+#: common/models.py:1855
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1945
+#: common/models.py:1861
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1862
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1952
+#: common/models.py:1868
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1953
+#: common/models.py:1869
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1959
+#: common/models.py:1875
msgid "Show low stock"
msgstr ""
-#: common/models.py:1960
+#: common/models.py:1876
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1966
+#: common/models.py:1882
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1883
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1889
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1974
+#: common/models.py:1890
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1980
+#: common/models.py:1896
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1897
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1987
+#: common/models.py:1903
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1988
+#: common/models.py:1904
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1994
+#: common/models.py:1910
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1995
+#: common/models.py:1911
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2001
+#: common/models.py:1917
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2002
+#: common/models.py:1918
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2008
+#: common/models.py:1924
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2009
+#: common/models.py:1925
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2015
+#: common/models.py:1931
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:1932
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:1938
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2023
+#: common/models.py:1939
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2029
+#: common/models.py:1945
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2030
+#: common/models.py:1946
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2036
+#: common/models.py:1952
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2037
+#: common/models.py:1953
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2043
+#: common/models.py:1959
msgid "Show News"
msgstr ""
-#: common/models.py:2044
+#: common/models.py:1960
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:1966
msgid "Inline label display"
msgstr ""
-#: common/models.py:2051
+#: common/models.py:1967
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2057
+#: common/models.py:1973
msgid "Default label printer"
msgstr ""
-#: common/models.py:2058
+#: common/models.py:1974
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2064
+#: common/models.py:1980
msgid "Inline report display"
msgstr ""
-#: common/models.py:2065
+#: common/models.py:1981
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:1987
msgid "Search Parts"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:1988
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:1994
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:1995
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2001
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2002
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2008
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2009
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2015
msgid "Search Categories"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2016
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2022
msgid "Search Stock"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2023
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2029
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2030
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2120
+#: common/models.py:2036
msgid "Search Locations"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2037
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2043
msgid "Search Companies"
msgstr ""
-#: common/models.py:2128
+#: common/models.py:2044
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2134
+#: common/models.py:2050
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2051
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2141
+#: common/models.py:2057
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2142
+#: common/models.py:2058
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2148
+#: common/models.py:2064
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2149
+#: common/models.py:2065
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2155
+#: common/models.py:2071
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2072
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2162
+#: common/models.py:2078
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2163
+#: common/models.py:2079
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2169
+#: common/models.py:2085
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2170
+#: common/models.py:2086
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2176
+#: common/models.py:2092
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2177
+#: common/models.py:2093
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2183
+#: common/models.py:2099
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2184
+#: common/models.py:2100
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2106
msgid "Regex Search"
msgstr ""
-#: common/models.py:2191
+#: common/models.py:2107
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2197
+#: common/models.py:2113
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2198
+#: common/models.py:2114
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2204
+#: common/models.py:2120
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2205
+#: common/models.py:2121
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2211
+#: common/models.py:2127
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2212
+#: common/models.py:2128
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2218
+#: common/models.py:2134
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2219
+#: common/models.py:2135
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2225
+#: common/models.py:2141
msgid "Date Format"
msgstr ""
-#: common/models.py:2226
+#: common/models.py:2142
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2240 part/templates/part/detail.html:41
+#: common/models.py:2156 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2157
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2247 part/templates/part/detail.html:62
+#: common/models.py:2163 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2248
+#: common/models.py:2164
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2254
+#: common/models.py:2170
msgid "Table String Length"
msgstr ""
-#: common/models.py:2255
+#: common/models.py:2171
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2180
msgid "Default part label template"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2181
msgid "The part label template to be automatically selected"
msgstr ""
-#: common/models.py:2273
+#: common/models.py:2189
msgid "Default stock item template"
msgstr ""
-#: common/models.py:2274
+#: common/models.py:2190
msgid "The stock item label template to be automatically selected"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2198
msgid "Default stock location label template"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2199
msgid "The stock location label template to be automatically selected"
msgstr ""
-#: common/models.py:2291
+#: common/models.py:2207
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2292
+#: common/models.py:2208
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2336
+#: common/models.py:2252
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2343 company/serializers.py:483 order/admin.py:41
-#: order/models.py:1131 order/models.py:1933
-#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1880
+#: common/models.py:2259 company/serializers.py:488 order/admin.py:43
+#: order/models.py:1145 order/models.py:1952
+#: templates/js/translated/company.js:1813 templates/js/translated/part.js:1864
#: templates/js/translated/pricing.js:621
-#: templates/js/translated/return_order.js:738
+#: templates/js/translated/return_order.js:734
msgid "Price"
msgstr ""
-#: common/models.py:2344
+#: common/models.py:2260
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2503 common/models.py:2681
+#: common/models.py:2420 common/models.py:2598
msgid "Endpoint"
msgstr ""
-#: common/models.py:2504
+#: common/models.py:2421
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2513
+#: common/models.py:2430
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2518 part/admin.py:50 part/models.py:1020
+#: common/models.py:2435 part/admin.py:50 part/models.py:1028
#: plugin/models.py:48 templates/js/translated/table_filters.js:135
#: templates/js/translated/table_filters.js:219
-#: templates/js/translated/table_filters.js:488
-#: templates/js/translated/table_filters.js:516
-#: templates/js/translated/table_filters.js:712
+#: templates/js/translated/table_filters.js:464
+#: templates/js/translated/table_filters.js:480
+#: templates/js/translated/table_filters.js:676
msgid "Active"
msgstr ""
-#: common/models.py:2519
+#: common/models.py:2436
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2450
msgid "Token"
msgstr ""
-#: common/models.py:2534
+#: common/models.py:2451
msgid "Token for access"
msgstr ""
-#: common/models.py:2541
+#: common/models.py:2458
msgid "Secret"
msgstr ""
-#: common/models.py:2542
+#: common/models.py:2459
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2648
+#: common/models.py:2565
msgid "Message ID"
msgstr ""
-#: common/models.py:2649
+#: common/models.py:2566
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2657
+#: common/models.py:2574
msgid "Host"
msgstr ""
-#: common/models.py:2658
+#: common/models.py:2575
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2665
+#: common/models.py:2582
msgid "Header"
msgstr ""
-#: common/models.py:2666
+#: common/models.py:2583
msgid "Header of this message"
msgstr ""
-#: common/models.py:2672
+#: common/models.py:2589
msgid "Body"
msgstr ""
-#: common/models.py:2673
+#: common/models.py:2590
msgid "Body of this message"
msgstr ""
-#: common/models.py:2682
+#: common/models.py:2599
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2687
+#: common/models.py:2604
msgid "Worked on"
msgstr ""
-#: common/models.py:2688
+#: common/models.py:2605
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2842
+#: common/models.py:2759
msgid "Id"
msgstr ""
-#: common/models.py:2848 templates/js/translated/company.js:955
+#: common/models.py:2765 templates/js/translated/company.js:955
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:2858 templates/js/translated/news.js:60
+#: common/models.py:2775 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:2863 templates/InvenTree/settings/plugin_settings.html:32
-#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102
+#: common/models.py:2780 templates/InvenTree/settings/plugin_settings.html:32
+#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:106
msgid "Author"
msgstr ""
-#: common/models.py:2868 templates/js/translated/news.js:52
+#: common/models.py:2785 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:2873
+#: common/models.py:2790
msgid "Read"
msgstr ""
-#: common/models.py:2874
+#: common/models.py:2791
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:2893 company/models.py:139 part/models.py:910
+#: common/models.py:2811 company/models.py:139 part/models.py:918
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report_base.html:35
@@ -3493,56 +3466,56 @@ msgstr ""
msgid "Image"
msgstr ""
-#: common/models.py:2894
+#: common/models.py:2812
msgid "Image file"
msgstr ""
-#: common/models.py:2937
+#: common/models.py:2856
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:2959
+#: common/models.py:2878
msgid "Unit name"
msgstr ""
-#: common/models.py:2965 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:2884 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:2966
+#: common/models.py:2885
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:2972 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:2891 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:2973
+#: common/models.py:2892
msgid "Unit definition"
msgstr ""
-#: common/notifications.py:290
+#: common/notifications.py:291
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:292
+#: common/notifications.py:293
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:298 common/notifications.py:305
+#: common/notifications.py:299 common/notifications.py:306
msgid "Items Received"
msgstr ""
-#: common/notifications.py:300
+#: common/notifications.py:301
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:307
+#: common/notifications.py:308
msgid "Items have been received against a return order"
msgstr ""
-#: common/notifications.py:419
+#: common/notifications.py:420
msgid "Error raised by plugin"
msgstr ""
@@ -3573,7 +3546,7 @@ msgstr ""
msgid "Parts imported"
msgstr ""
-#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
#: part/templates/part/import_wizard/match_fields.html:27
@@ -3615,7 +3588,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:140
-#: order/models.py:264 order/templates/order/order_base.html:203
+#: order/models.py:270 order/templates/order/order_base.html:203
#: order/templates/order/return_order_base.html:175
#: order/templates/order/sales_order_base.html:215
msgid "Contact"
@@ -3657,301 +3630,301 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:232 company/models.py:333
+#: company/models.py:235 company/models.py:338
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:495
msgid "Company"
msgstr ""
-#: company/models.py:334
+#: company/models.py:339
msgid "Select company"
msgstr ""
-#: company/models.py:337
+#: company/models.py:342
msgid "Address title"
msgstr ""
-#: company/models.py:338
+#: company/models.py:343
msgid "Title describing the address entry"
msgstr ""
-#: company/models.py:342
+#: company/models.py:347
msgid "Primary address"
msgstr ""
-#: company/models.py:343
+#: company/models.py:348
msgid "Set as primary address"
msgstr ""
-#: company/models.py:346 templates/js/translated/company.js:904
+#: company/models.py:351 templates/js/translated/company.js:904
#: templates/js/translated/company.js:961
msgid "Line 1"
msgstr ""
-#: company/models.py:347
+#: company/models.py:352
msgid "Address line 1"
msgstr ""
-#: company/models.py:351 templates/js/translated/company.js:905
+#: company/models.py:356 templates/js/translated/company.js:905
#: templates/js/translated/company.js:967
msgid "Line 2"
msgstr ""
-#: company/models.py:352
+#: company/models.py:357
msgid "Address line 2"
msgstr ""
-#: company/models.py:356 company/models.py:357
+#: company/models.py:361 company/models.py:362
#: templates/js/translated/company.js:973
msgid "Postal code"
msgstr ""
-#: company/models.py:361
+#: company/models.py:366
msgid "City/Region"
msgstr ""
-#: company/models.py:362
+#: company/models.py:367
msgid "Postal code city/region"
msgstr ""
-#: company/models.py:366
+#: company/models.py:371
msgid "State/Province"
msgstr ""
-#: company/models.py:367
+#: company/models.py:372
msgid "State or province"
msgstr ""
-#: company/models.py:371 templates/js/translated/company.js:991
+#: company/models.py:376 templates/js/translated/company.js:991
msgid "Country"
msgstr ""
-#: company/models.py:372
+#: company/models.py:377
msgid "Address country"
msgstr ""
-#: company/models.py:376
+#: company/models.py:381
msgid "Courier shipping notes"
msgstr ""
-#: company/models.py:377
+#: company/models.py:382
msgid "Notes for shipping courier"
msgstr ""
-#: company/models.py:381
+#: company/models.py:386
msgid "Internal shipping notes"
msgstr ""
-#: company/models.py:382
+#: company/models.py:387
msgid "Shipping notes for internal use"
msgstr ""
-#: company/models.py:387
+#: company/models.py:392
msgid "Link to address information (external)"
msgstr ""
-#: company/models.py:412 company/models.py:688 stock/models.py:740
+#: company/models.py:417 company/models.py:693 stock/models.py:675
#: stock/serializers.py:205 stock/templates/stock/item_base.html:143
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
-#: company/models.py:416 company/models.py:692
+#: company/models.py:421 company/models.py:697
msgid "Select part"
msgstr ""
-#: company/models.py:427 company/templates/company/company_base.html:77
+#: company/models.py:432 company/templates/company/company_base.html:77
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:146 part/serializers.py:440
+#: company/templates/company/supplier_part.html:146 part/serializers.py:438
#: stock/templates/stock/item_base.html:208
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:1108
#: templates/js/translated/company.js:1286
#: templates/js/translated/company.js:1601
-#: templates/js/translated/table_filters.js:792
+#: templates/js/translated/table_filters.js:756
msgid "Manufacturer"
msgstr ""
-#: company/models.py:428
+#: company/models.py:433
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:434 company/templates/company/manufacturer_part.html:101
-#: company/templates/company/supplier_part.html:154 part/serializers.py:446
+#: company/models.py:439 company/templates/company/manufacturer_part.html:101
+#: company/templates/company/supplier_part.html:154 part/serializers.py:444
#: templates/js/translated/company.js:351
#: templates/js/translated/company.js:1107
#: templates/js/translated/company.js:1302
-#: templates/js/translated/company.js:1620 templates/js/translated/part.js:1797
-#: templates/js/translated/purchase_order.js:1830
-#: templates/js/translated/purchase_order.js:2032
+#: templates/js/translated/company.js:1620 templates/js/translated/part.js:1781
+#: templates/js/translated/purchase_order.js:1826
+#: templates/js/translated/purchase_order.js:2028
msgid "MPN"
msgstr ""
-#: company/models.py:435
+#: company/models.py:440
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:441
+#: company/models.py:446
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:447
+#: company/models.py:452
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:494 company/models.py:518 company/models.py:713
+#: company/models.py:499 company/models.py:523 company/models.py:718
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
#: stock/templates/stock/item_base.html:218
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:525
+#: company/models.py:530
msgid "Parameter name"
msgstr ""
-#: company/models.py:531
+#: company/models.py:536
#: report/templates/report/inventree_test_report_base.html:104
-#: stock/models.py:2348 templates/js/translated/company.js:1156
-#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1489
-#: templates/js/translated/stock.js:1502
+#: stock/models.py:2286 templates/js/translated/company.js:1156
+#: templates/js/translated/company.js:1409 templates/js/translated/part.js:1473
+#: templates/js/translated/stock.js:1464
msgid "Value"
msgstr ""
-#: company/models.py:532
+#: company/models.py:537
msgid "Parameter value"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part.html:169
-#: part/admin.py:40 part/models.py:984 part/models.py:3429
+#: company/models.py:543 company/templates/company/supplier_part.html:169
+#: part/admin.py:40 part/models.py:992 part/models.py:3468
#: part/templates/part/part_base.html:286
-#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1508
-#: templates/js/translated/part.js:1612 templates/js/translated/part.js:2365
+#: templates/js/translated/company.js:1415 templates/js/translated/part.js:1492
+#: templates/js/translated/part.js:1596 templates/js/translated/part.js:2344
msgid "Units"
msgstr ""
-#: company/models.py:539
+#: company/models.py:544
msgid "Parameter units"
msgstr ""
-#: company/models.py:633
+#: company/models.py:638
msgid "Pack units must be compatible with the base part units"
msgstr ""
-#: company/models.py:639
+#: company/models.py:644
msgid "Pack units must be greater than zero"
msgstr ""
-#: company/models.py:655
+#: company/models.py:660
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:699 company/templates/company/company_base.html:82
-#: company/templates/company/supplier_part.html:130 order/models.py:386
-#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312
-#: part/serializers.py:429 stock/templates/stock/item_base.html:225
+#: company/models.py:704 company/templates/company/company_base.html:82
+#: company/templates/company/supplier_part.html:130 order/models.py:395
+#: order/templates/order/order_base.html:136 part/bom.py:285 part/bom.py:313
+#: part/serializers.py:427 stock/templates/stock/item_base.html:225
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:510
-#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1765
+#: templates/js/translated/company.js:1574 templates/js/translated/part.js:1749
#: templates/js/translated/pricing.js:498
-#: templates/js/translated/purchase_order.js:1672
-#: templates/js/translated/table_filters.js:796
+#: templates/js/translated/purchase_order.js:1668
+#: templates/js/translated/table_filters.js:760
msgid "Supplier"
msgstr ""
-#: company/models.py:700
+#: company/models.py:705
msgid "Select supplier"
msgstr ""
-#: company/models.py:705 company/templates/company/supplier_part.html:140
-#: part/bom.py:285 part/bom.py:313 part/serializers.py:435
-#: templates/js/translated/company.js:349 templates/js/translated/part.js:1783
+#: company/models.py:710 company/templates/company/supplier_part.html:140
+#: part/bom.py:286 part/bom.py:314 part/serializers.py:433
+#: templates/js/translated/company.js:349 templates/js/translated/part.js:1767
#: templates/js/translated/pricing.js:510
-#: templates/js/translated/purchase_order.js:1829
-#: templates/js/translated/purchase_order.js:2007
+#: templates/js/translated/purchase_order.js:1825
+#: templates/js/translated/purchase_order.js:2003
msgid "SKU"
msgstr ""
-#: company/models.py:706 part/serializers.py:435
+#: company/models.py:711 part/serializers.py:433
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:714
+#: company/models.py:719
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:720
+#: company/models.py:725
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:726
+#: company/models.py:731
msgid "Supplier part description"
msgstr ""
-#: company/models.py:731 company/templates/company/supplier_part.html:188
-#: part/admin.py:275 part/models.py:3839 part/templates/part/upload_bom.html:59
+#: company/models.py:736 company/templates/company/supplier_part.html:188
+#: part/admin.py:279 part/models.py:3884 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report_base.html:32
#: report/templates/report/inventree_return_order_report_base.html:27
#: report/templates/report/inventree_slr_report.html:105
#: report/templates/report/inventree_so_report_base.html:32
-#: stock/serializers.py:493
+#: stock/serializers.py:495
msgid "Note"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "base cost"
msgstr ""
-#: company/models.py:735 part/models.py:1912
+#: company/models.py:740 part/models.py:1929
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:737 company/templates/company/supplier_part.html:161
-#: stock/admin.py:137 stock/models.py:766 stock/serializers.py:1268
+#: company/models.py:742 company/templates/company/supplier_part.html:161
+#: stock/admin.py:119 stock/models.py:701 stock/serializers.py:1238
#: stock/templates/stock/item_base.html:241
#: templates/js/translated/company.js:1636
-#: templates/js/translated/stock.js:2394
+#: templates/js/translated/stock.js:2356
msgid "Packaging"
msgstr ""
-#: company/models.py:737
+#: company/models.py:742
msgid "Part packaging"
msgstr ""
-#: company/models.py:741 templates/js/translated/company.js:1641
-#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
+#: company/models.py:746 templates/js/translated/company.js:1641
+#: templates/js/translated/part.js:1801 templates/js/translated/part.js:1856
#: templates/js/translated/purchase_order.js:311
#: templates/js/translated/purchase_order.js:842
#: templates/js/translated/purchase_order.js:1088
-#: templates/js/translated/purchase_order.js:2063
-#: templates/js/translated/purchase_order.js:2080
+#: templates/js/translated/purchase_order.js:2059
+#: templates/js/translated/purchase_order.js:2076
msgid "Pack Quantity"
msgstr ""
-#: company/models.py:742
+#: company/models.py:747
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:758 part/models.py:1914
+#: company/models.py:764 part/models.py:1931
msgid "multiple"
msgstr ""
-#: company/models.py:758
+#: company/models.py:764
msgid "Order multiple"
msgstr ""
-#: company/models.py:767
+#: company/models.py:773
msgid "Quantity available from supplier"
msgstr ""
-#: company/models.py:771
+#: company/models.py:777
msgid "Availability Updated"
msgstr ""
-#: company/models.py:772
+#: company/models.py:778
msgid "Date of last update of availability data"
msgstr ""
@@ -4013,17 +3986,17 @@ msgstr ""
msgid "Delete image"
msgstr ""
-#: company/templates/company/company_base.html:87 order/models.py:782
-#: order/models.py:1736 order/templates/order/return_order_base.html:132
-#: order/templates/order/sales_order_base.html:145 stock/models.py:785
-#: stock/models.py:786 stock/serializers.py:1015
+#: company/templates/company/company_base.html:87 order/models.py:792
+#: order/models.py:1751 order/templates/order/return_order_base.html:132
+#: order/templates/order/sales_order_base.html:145 stock/models.py:720
+#: stock/models.py:721 stock/serializers.py:985
#: stock/templates/stock/item_base.html:406
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:502
#: templates/js/translated/return_order.js:293
#: templates/js/translated/sales_order.js:781
-#: templates/js/translated/stock.js:2930
-#: templates/js/translated/table_filters.js:800
+#: templates/js/translated/stock.js:2881
+#: templates/js/translated/table_filters.js:764
msgid "Customer"
msgstr ""
@@ -4031,7 +4004,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/company_base.html:119 order/models.py:273
+#: company/templates/company/company_base.html:119 order/models.py:279
#: order/templates/order/order_base.html:210
#: order/templates/order/return_order_base.html:182
#: order/templates/order/sales_order_base.html:222
@@ -4195,7 +4168,7 @@ msgstr ""
msgid "Add Address"
msgstr ""
-#: company/templates/company/manufacturer_part.html:15 company/views.py:37
+#: company/templates/company/manufacturer_part.html:15 company/views.py:38
#: templates/InvenTree/search.html:180 templates/navbar.html:49
msgid "Manufacturers"
msgstr ""
@@ -4226,7 +4199,7 @@ msgid "No manufacturer information available"
msgstr ""
#: company/templates/company/manufacturer_part.html:119
-#: company/templates/company/supplier_part.html:15 company/views.py:31
+#: company/templates/company/supplier_part.html:15 company/views.py:32
#: part/admin.py:60 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/search.html:190 templates/navbar.html:48
msgid "Suppliers"
@@ -4247,7 +4220,7 @@ msgid "New Parameter"
msgstr ""
#: company/templates/company/manufacturer_part.html:206
-#: templates/js/translated/part.js:1419
+#: templates/js/translated/part.js:1403
msgid "Add Parameter"
msgstr ""
@@ -4276,11 +4249,11 @@ msgid "Addresses"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:749
+#: company/templates/company/supplier_part.html:24 stock/models.py:684
#: stock/templates/stock/item_base.html:234
#: templates/js/translated/company.js:1590
#: templates/js/translated/purchase_order.js:758
-#: templates/js/translated/stock.js:2250
+#: templates/js/translated/stock.js:2212
msgid "Supplier Part"
msgstr ""
@@ -4336,7 +4309,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:211
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:199
-#: templates/js/translated/stock.js:537
+#: templates/js/translated/stock.js:503
msgid "New Stock Item"
msgstr ""
@@ -4366,15 +4339,15 @@ msgstr ""
msgid "Update Part Availability"
msgstr ""
-#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222
+#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:224
#: part/templates/part/category.html:182
-#: part/templates/part/category_sidebar.html:17 stock/admin.py:48
-#: stock/serializers.py:683 stock/templates/stock/location.html:169
+#: part/templates/part/category_sidebar.html:17 stock/admin.py:47
+#: stock/serializers.py:688 stock/templates/stock/location.html:169
#: stock/templates/stock/location.html:183
#: stock/templates/stock/location.html:195
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1057
-#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737
+#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1041
+#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2699
#: users/models.py:41
msgid "Stock Items"
msgstr ""
@@ -4383,28 +4356,28 @@ msgstr ""
msgid "Supplier Part Pricing"
msgstr ""
-#: company/views.py:32
+#: company/views.py:33
msgid "New Supplier"
msgstr ""
-#: company/views.py:38
+#: company/views.py:39
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:43 templates/InvenTree/search.html:210
+#: company/views.py:44 templates/InvenTree/search.html:210
#: templates/navbar.html:60
msgid "Customers"
msgstr ""
-#: company/views.py:44
+#: company/views.py:45
msgid "New Customer"
msgstr ""
-#: company/views.py:51 templates/js/translated/search.js:192
+#: company/views.py:52 templates/js/translated/search.js:192
msgid "Companies"
msgstr ""
-#: company/views.py:52
+#: company/views.py:53
msgid "New Company"
msgstr ""
@@ -4424,7 +4397,7 @@ msgstr ""
msgid "Label template file"
msgstr ""
-#: label/models.py:141 report/models.py:311
+#: label/models.py:141 report/models.py:277
msgid "Enabled"
msgstr ""
@@ -4448,7 +4421,7 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:161 report/models.py:304
+#: label/models.py:161 report/models.py:270
msgid "Filename Pattern"
msgstr ""
@@ -4462,8 +4435,8 @@ msgid "Query filters (comma-separated list of key=value pairs)"
msgstr ""
#: label/models.py:289 label/models.py:330 label/models.py:358
-#: label/models.py:394 report/models.py:332 report/models.py:478
-#: report/models.py:516 report/models.py:554 report/models.py:675
+#: label/models.py:394 report/models.py:298 report/models.py:445
+#: report/models.py:483 report/models.py:521 report/models.py:645
msgid "Filters"
msgstr ""
@@ -4480,573 +4453,573 @@ msgstr ""
msgid "QR code"
msgstr ""
-#: order/admin.py:29 order/models.py:72
+#: order/admin.py:30 order/models.py:73
#: report/templates/report/inventree_po_report_base.html:31
#: report/templates/report/inventree_so_report_base.html:31
#: templates/js/translated/order.js:327
-#: templates/js/translated/purchase_order.js:2104
+#: templates/js/translated/purchase_order.js:2100
#: templates/js/translated/sales_order.js:1844
msgid "Total Price"
msgstr ""
-#: order/api.py:231
+#: order/api.py:242
msgid "No matching purchase order found"
msgstr ""
-#: order/api.py:1408 order/models.py:1177 order/models.py:1260
+#: order/api.py:1440 order/models.py:1191 order/models.py:1275
#: order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report_base.html:14
#: stock/templates/stock/item_base.html:177
#: templates/email/overdue_purchase_order.html:15
-#: templates/js/translated/part.js:1742 templates/js/translated/pricing.js:804
+#: templates/js/translated/part.js:1726 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:165
#: templates/js/translated/purchase_order.js:759
-#: templates/js/translated/purchase_order.js:1656
-#: templates/js/translated/stock.js:2230 templates/js/translated/stock.js:2878
+#: templates/js/translated/purchase_order.js:1652
+#: templates/js/translated/stock.js:2192 templates/js/translated/stock.js:2829
msgid "Purchase Order"
msgstr ""
-#: order/api.py:1412 order/models.py:1903 order/models.py:1949
+#: order/api.py:1444 order/models.py:1922 order/models.py:1968
#: order/templates/order/return_order_base.html:9
#: order/templates/order/return_order_base.html:28
#: report/templates/report/inventree_return_order_report_base.html:13
#: templates/js/translated/return_order.js:278
-#: templates/js/translated/stock.js:2912
+#: templates/js/translated/stock.js:2863
msgid "Return Order"
msgstr ""
-#: order/api.py:1414 templates/js/translated/sales_order.js:1039
+#: order/api.py:1446 templates/js/translated/sales_order.js:1039
msgid "Unknown"
msgstr ""
-#: order/models.py:73
+#: order/models.py:74
msgid "Total price for this order"
msgstr ""
-#: order/models.py:78 order/serializers.py:50
+#: order/models.py:79 order/serializers.py:50
msgid "Order Currency"
msgstr ""
-#: order/models.py:80 order/serializers.py:51
+#: order/models.py:81 order/serializers.py:51
msgid "Currency for this order (leave blank to use company default)"
msgstr ""
-#: order/models.py:206
+#: order/models.py:210
msgid "Contact does not match selected company"
msgstr ""
-#: order/models.py:226
+#: order/models.py:232
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:231
+#: order/models.py:237
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:234 order/models.py:1093 order/models.py:1451
+#: order/models.py:240 order/models.py:1107 order/models.py:1467
msgid "Link to external page"
msgstr ""
-#: order/models.py:239
+#: order/models.py:245
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:248
+#: order/models.py:254
msgid "Created By"
msgstr ""
-#: order/models.py:255
+#: order/models.py:261
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:265
+#: order/models.py:271
msgid "Point of contact for this order"
msgstr ""
-#: order/models.py:274
+#: order/models.py:280
msgid "Company address for this order"
msgstr ""
-#: order/models.py:364 order/models.py:769
+#: order/models.py:373 order/models.py:779
msgid "Order reference"
msgstr ""
-#: order/models.py:372 order/models.py:794
+#: order/models.py:381 order/models.py:804
msgid "Purchase order status"
msgstr ""
-#: order/models.py:387
+#: order/models.py:396
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:395 order/templates/order/order_base.html:148
-#: templates/js/translated/purchase_order.js:1681
+#: order/models.py:404 order/templates/order/order_base.html:148
+#: templates/js/translated/purchase_order.js:1677
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:395
+#: order/models.py:404
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:402
+#: order/models.py:411
msgid "received by"
msgstr ""
-#: order/models.py:407 order/models.py:1759
+#: order/models.py:416 order/models.py:1774
msgid "Issue Date"
msgstr ""
-#: order/models.py:408 order/models.py:1760
+#: order/models.py:417 order/models.py:1775
msgid "Date order was issued"
msgstr ""
-#: order/models.py:414 order/models.py:1766
+#: order/models.py:423 order/models.py:1781
msgid "Date order was completed"
msgstr ""
-#: order/models.py:449
+#: order/models.py:458
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:610
+#: order/models.py:619
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:783
+#: order/models.py:793
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:802 order/models.py:1753
+#: order/models.py:812 order/models.py:1768
msgid "Customer Reference "
msgstr ""
-#: order/models.py:802 order/models.py:1754
+#: order/models.py:812 order/models.py:1769
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:804 order/models.py:1405
+#: order/models.py:814 order/models.py:1421
#: templates/js/translated/sales_order.js:840
#: templates/js/translated/sales_order.js:1021
msgid "Shipment Date"
msgstr ""
-#: order/models.py:811
+#: order/models.py:821
msgid "shipped by"
msgstr ""
-#: order/models.py:860
+#: order/models.py:870
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:864
+#: order/models.py:874
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:867 templates/js/translated/sales_order.js:503
+#: order/models.py:877 templates/js/translated/sales_order.js:503
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:870
+#: order/models.py:880
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1087
msgid "Item quantity"
msgstr ""
-#: order/models.py:1086
+#: order/models.py:1100
msgid "Line item reference"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1102
msgid "Line item notes"
msgstr ""
-#: order/models.py:1099
+#: order/models.py:1113
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:1117
+#: order/models.py:1131
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1136
msgid "Context"
msgstr ""
-#: order/models.py:1123
+#: order/models.py:1137
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:1132
+#: order/models.py:1146
msgid "Unit price"
msgstr ""
-#: order/models.py:1162
+#: order/models.py:1176
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:1170
+#: order/models.py:1184
msgid "deleted"
msgstr ""
-#: order/models.py:1176 order/models.py:1260 order/models.py:1300
-#: order/models.py:1399 order/models.py:1548 order/models.py:1902
-#: order/models.py:1949 templates/js/translated/sales_order.js:1485
+#: order/models.py:1190 order/models.py:1275 order/models.py:1316
+#: order/models.py:1415 order/models.py:1564 order/models.py:1921
+#: order/models.py:1968 templates/js/translated/sales_order.js:1485
msgid "Order"
msgstr ""
-#: order/models.py:1194
+#: order/models.py:1209
msgid "Supplier part"
msgstr ""
-#: order/models.py:1201 order/templates/order/order_base.html:196
-#: templates/js/translated/part.js:1865 templates/js/translated/part.js:1896
+#: order/models.py:1216 order/templates/order/order_base.html:196
+#: templates/js/translated/part.js:1849 templates/js/translated/part.js:1880
#: templates/js/translated/purchase_order.js:1291
-#: templates/js/translated/purchase_order.js:2148
-#: templates/js/translated/return_order.js:761
+#: templates/js/translated/purchase_order.js:2144
+#: templates/js/translated/return_order.js:757
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:598
+#: templates/js/translated/table_filters.js:562
msgid "Received"
msgstr ""
-#: order/models.py:1202
+#: order/models.py:1217
msgid "Number of items received"
msgstr ""
-#: order/models.py:1209 stock/models.py:888 stock/serializers.py:319
+#: order/models.py:1224 stock/models.py:823 stock/serializers.py:321
#: stock/templates/stock/item_base.html:184
-#: templates/js/translated/stock.js:2281
+#: templates/js/translated/stock.js:2243
msgid "Purchase Price"
msgstr ""
-#: order/models.py:1210
+#: order/models.py:1225
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:1223
+#: order/models.py:1238
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:1288
+#: order/models.py:1304
msgid "Virtual part cannot be assigned to a sales order"
msgstr ""
-#: order/models.py:1293
+#: order/models.py:1309
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:1319 part/templates/part/part_pricing.html:107
+#: order/models.py:1335 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957
msgid "Sale Price"
msgstr ""
-#: order/models.py:1320
+#: order/models.py:1336
msgid "Unit sale price"
msgstr ""
-#: order/models.py:1330
+#: order/models.py:1346
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1406
+#: order/models.py:1422
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1411 templates/js/translated/sales_order.js:1033
+#: order/models.py:1427 templates/js/translated/sales_order.js:1033
msgid "Delivery Date"
msgstr ""
-#: order/models.py:1412
+#: order/models.py:1428
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:1419
+#: order/models.py:1435
msgid "Checked By"
msgstr ""
-#: order/models.py:1420
+#: order/models.py:1436
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1427 order/models.py:1626 order/serializers.py:1269
-#: order/serializers.py:1397 templates/js/translated/model_renderers.js:446
+#: order/models.py:1443 order/models.py:1640 order/serializers.py:1276
+#: order/serializers.py:1404 templates/js/translated/model_renderers.js:433
msgid "Shipment"
msgstr ""
-#: order/models.py:1428
+#: order/models.py:1444
msgid "Shipment number"
msgstr ""
-#: order/models.py:1436
+#: order/models.py:1452
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1437
+#: order/models.py:1453
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1444
+#: order/models.py:1460
msgid "Invoice Number"
msgstr ""
-#: order/models.py:1445
+#: order/models.py:1461
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:1467
+#: order/models.py:1483
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1470
+#: order/models.py:1486
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1583 order/models.py:1585
+#: order/models.py:1599 order/models.py:1601
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1591
+#: order/models.py:1605
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1593
+#: order/models.py:1607
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1596
+#: order/models.py:1610
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1606 order/serializers.py:1133
+#: order/models.py:1620 order/serializers.py:1138
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1609
+#: order/models.py:1623
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1610
+#: order/models.py:1624
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1618
+#: order/models.py:1632
msgid "Line"
msgstr ""
-#: order/models.py:1627
+#: order/models.py:1641
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1640 order/models.py:1910
-#: templates/js/translated/return_order.js:719
+#: order/models.py:1654 order/models.py:1929
+#: templates/js/translated/return_order.js:715
msgid "Item"
msgstr ""
-#: order/models.py:1641
+#: order/models.py:1655
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1644
+#: order/models.py:1658
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:1723
+#: order/models.py:1738
msgid "Return Order reference"
msgstr ""
-#: order/models.py:1737
+#: order/models.py:1752
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:1748
+#: order/models.py:1763
msgid "Return order status"
msgstr ""
-#: order/models.py:1895
+#: order/models.py:1914
msgid "Only serialized items can be assigned to a Return Order"
msgstr ""
-#: order/models.py:1911
+#: order/models.py:1930
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:1916
+#: order/models.py:1935
msgid "Received Date"
msgstr ""
-#: order/models.py:1917
+#: order/models.py:1936
msgid "The date this this return item was received"
msgstr ""
-#: order/models.py:1928 templates/js/translated/return_order.js:730
+#: order/models.py:1947 templates/js/translated/return_order.js:726
#: templates/js/translated/table_filters.js:123
msgid "Outcome"
msgstr ""
-#: order/models.py:1928
+#: order/models.py:1947
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:1934
+#: order/models.py:1953
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:253
msgid "Order cannot be cancelled"
msgstr ""
-#: order/serializers.py:265 order/serializers.py:1151
+#: order/serializers.py:268 order/serializers.py:1156
msgid "Allow order to be closed with incomplete line items"
msgstr ""
-#: order/serializers.py:275 order/serializers.py:1161
+#: order/serializers.py:279 order/serializers.py:1167
msgid "Order has incomplete line items"
msgstr ""
-#: order/serializers.py:388
+#: order/serializers.py:392
msgid "Order is not open"
msgstr ""
-#: order/serializers.py:406
+#: order/serializers.py:410
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:424
+#: order/serializers.py:428
msgid "Supplier part must be specified"
msgstr ""
-#: order/serializers.py:429
+#: order/serializers.py:433
msgid "Purchase order must be specified"
msgstr ""
-#: order/serializers.py:435
+#: order/serializers.py:439
msgid "Supplier must match purchase order"
msgstr ""
-#: order/serializers.py:436
+#: order/serializers.py:440
msgid "Purchase order must match supplier"
msgstr ""
-#: order/serializers.py:474 order/serializers.py:1237
+#: order/serializers.py:478 order/serializers.py:1244
msgid "Line Item"
msgstr ""
-#: order/serializers.py:480
+#: order/serializers.py:484
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:490 order/serializers.py:609 order/serializers.py:1607
+#: order/serializers.py:494 order/serializers.py:613 order/serializers.py:1617
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:509 templates/js/translated/purchase_order.js:1115
+#: order/serializers.py:513 templates/js/translated/purchase_order.js:1115
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:517 templates/js/translated/purchase_order.js:1139
+#: order/serializers.py:521 templates/js/translated/purchase_order.js:1139
msgid "Enter serial numbers for incoming stock items"
msgstr ""
-#: order/serializers.py:530 templates/js/translated/barcode.js:52
+#: order/serializers.py:534 templates/js/translated/barcode.js:52
msgid "Barcode"
msgstr ""
-#: order/serializers.py:531
+#: order/serializers.py:535
msgid "Scanned barcode"
msgstr ""
-#: order/serializers.py:547
+#: order/serializers.py:551
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:571
+#: order/serializers.py:575
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:625 order/serializers.py:1621
+#: order/serializers.py:629 order/serializers.py:1632
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:642
+#: order/serializers.py:646
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:653
+#: order/serializers.py:657
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:973
+#: order/serializers.py:978
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:1030
+#: order/serializers.py:1035
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:1094 order/serializers.py:1246
+#: order/serializers.py:1099 order/serializers.py:1253
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:1116
+#: order/serializers.py:1121
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:1259
+#: order/serializers.py:1266
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1281 order/serializers.py:1405
+#: order/serializers.py:1288 order/serializers.py:1412
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1284 order/serializers.py:1408
+#: order/serializers.py:1291 order/serializers.py:1415
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1338
+#: order/serializers.py:1345
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1348
+#: order/serializers.py:1355
msgid "The following serial numbers are already allocated"
msgstr ""
-#: order/serializers.py:1574
+#: order/serializers.py:1583
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1580
+#: order/serializers.py:1590
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1583
+#: order/serializers.py:1593
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1614
+#: order/serializers.py:1625
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1693
+#: order/serializers.py:1706
msgid "Line price currency"
msgstr ""
-#: order/tasks.py:26
+#: order/tasks.py:27
msgid "Overdue Purchase Order"
msgstr ""
-#: order/tasks.py:31
+#: order/tasks.py:32
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
-#: order/tasks.py:87
+#: order/tasks.py:90
msgid "Overdue Sales Order"
msgstr ""
-#: order/tasks.py:92
+#: order/tasks.py:95
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@@ -5214,12 +5187,12 @@ msgstr ""
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:133 templates/js/translated/build.js:518
-#: templates/js/translated/build.js:1610
+#: templates/js/translated/build.js:1602
#: templates/js/translated/purchase_order.js:703
#: templates/js/translated/purchase_order.js:1221
#: templates/js/translated/return_order.js:503
#: templates/js/translated/sales_order.js:1106
-#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:680 templates/js/translated/stock.js:849
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -5342,8 +5315,8 @@ msgstr ""
#: part/templates/part/part_pricing.html:58
#: part/templates/part/part_pricing.html:99
#: part/templates/part/part_pricing.html:114
-#: templates/js/translated/part.js:1069
-#: templates/js/translated/purchase_order.js:1731
+#: templates/js/translated/part.js:1053
+#: templates/js/translated/purchase_order.js:1727
#: templates/js/translated/return_order.js:378
#: templates/js/translated/sales_order.js:852
msgid "Total Cost"
@@ -5403,7 +5376,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:71
-#: templates/js/translated/bom.js:1271 templates/js/translated/filters.js:296
+#: templates/js/translated/bom.js:1266 templates/js/translated/filters.js:296
msgid "Actions"
msgstr ""
@@ -5433,47 +5406,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:33 part/admin.py:269 part/models.py:3699 part/stocktake.py:217
-#: stock/admin.py:119
+#: part/admin.py:33 part/admin.py:273 part/models.py:3743 part/stocktake.py:219
+#: stock/admin.py:101
msgid "Part ID"
msgstr ""
-#: part/admin.py:34 part/admin.py:271 part/models.py:3703 part/stocktake.py:218
-#: stock/admin.py:120
+#: part/admin.py:34 part/admin.py:275 part/models.py:3747 part/stocktake.py:220
+#: stock/admin.py:102
msgid "Part Name"
msgstr ""
-#: part/admin.py:35 part/stocktake.py:219
+#: part/admin.py:35 part/stocktake.py:221
msgid "Part Description"
msgstr ""
-#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271
+#: part/admin.py:36 part/models.py:893 part/templates/part/part_base.html:271
#: report/templates/report/inventree_slr_report.html:103
-#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2336
-#: templates/js/translated/stock.js:2006
+#: templates/js/translated/part.js:1207 templates/js/translated/part.js:2315
+#: templates/js/translated/stock.js:1968
msgid "IPN"
msgstr ""
-#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279
-#: report/models.py:189 templates/js/translated/part.js:1228
-#: templates/js/translated/part.js:2342
+#: part/admin.py:37 part/models.py:900 part/templates/part/part_base.html:279
+#: report/models.py:183 templates/js/translated/part.js:1212
+#: templates/js/translated/part.js:2321
msgid "Revision"
msgstr ""
-#: part/admin.py:38 part/admin.py:195 part/models.py:871
+#: part/admin.py:38 part/admin.py:198 part/models.py:879
#: part/templates/part/category.html:93 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220
+#: part/admin.py:42 part/admin.py:192 part/stocktake.py:222
msgid "Category ID"
msgstr ""
-#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221
+#: part/admin.py:43 part/admin.py:193 part/stocktake.py:223
msgid "Category Name"
msgstr ""
-#: part/admin.py:44 part/admin.py:194
+#: part/admin.py:44 part/admin.py:197
msgid "Default Location ID"
msgstr ""
@@ -5481,23 +5454,23 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179
+#: part/admin.py:46 part/models.py:868 part/templates/part/part_base.html:179
msgid "Variant Of"
msgstr ""
-#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205
+#: part/admin.py:47 part/models.py:985 part/templates/part/part_base.html:205
msgid "Minimum Stock"
msgstr ""
#: part/admin.py:61 part/templates/part/part_base.html:199
#: templates/js/translated/company.js:1679
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:331
msgid "In Stock"
msgstr ""
-#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:212
-#: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2597
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:2143
+#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212
+#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2585
+#: templates/js/translated/part.js:690 templates/js/translated/part.js:2127
#: templates/js/translated/table_filters.js:170
msgid "On Order"
msgstr ""
@@ -5506,107 +5479,107 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:142
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:2147
+#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:124
+#: templates/js/translated/part.js:695 templates/js/translated/part.js:2131
msgid "Building"
msgstr ""
-#: part/admin.py:66 part/models.py:2957 templates/js/translated/part.js:966
+#: part/admin.py:66 part/models.py:2991 templates/js/translated/part.js:950
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:67 part/models.py:2963 templates/js/translated/part.js:976
+#: part/admin.py:67 part/models.py:2997 templates/js/translated/part.js:960
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134
+#: part/admin.py:195 part/admin.py:270 stock/admin.py:42 stock/admin.py:116
msgid "Parent ID"
msgstr ""
-#: part/admin.py:193 part/admin.py:268 stock/admin.py:44
+#: part/admin.py:196 part/admin.py:272 stock/admin.py:43
msgid "Parent Name"
msgstr ""
-#: part/admin.py:196 part/templates/part/category.html:87
+#: part/admin.py:199 part/templates/part/category.html:87
#: part/templates/part/category.html:100
msgid "Category Path"
msgstr ""
-#: part/admin.py:199 part/models.py:393 part/serializers.py:339
+#: part/admin.py:202 part/models.py:393 part/serializers.py:336
#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23
#: part/templates/part/category.html:140 part/templates/part/category.html:160
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84
#: templates/InvenTree/settings/sidebar.html:47
-#: templates/js/translated/part.js:2799 templates/js/translated/search.js:130
+#: templates/js/translated/part.js:2778 templates/js/translated/search.js:130
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:261
+#: part/admin.py:265
msgid "BOM Level"
msgstr ""
-#: part/admin.py:263
+#: part/admin.py:267
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:267
+#: part/admin.py:271
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:270 part/models.py:3707
+#: part/admin.py:274 part/models.py:3751
msgid "Part IPN"
msgstr ""
-#: part/admin.py:276 templates/js/translated/pricing.js:358
+#: part/admin.py:280 templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:277 templates/js/translated/pricing.js:353
+#: part/admin.py:281 templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
msgstr ""
-#: part/api.py:505
+#: part/api.py:509
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:529
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:547
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:629
+#: part/api.py:633
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:774
+#: part/api.py:781
msgid "Valid"
msgstr ""
-#: part/api.py:775
+#: part/api.py:782
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:781
+#: part/api.py:788
msgid "This option must be selected"
msgstr ""
-#: part/bom.py:174 part/models.py:128 part/models.py:919
+#: part/bom.py:175 part/models.py:128 part/models.py:927
#: part/templates/part/category.html:115 part/templates/part/part_base.html:369
msgid "Default Location"
msgstr ""
-#: part/bom.py:175 templates/email/low_stock_notification.html:16
+#: part/bom.py:176 templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
-#: part/bom.py:176 part/templates/part/part_base.html:194
+#: part/bom.py:177 part/templates/part/part_base.html:194
#: templates/js/translated/sales_order.js:1890
msgid "Available Stock"
msgstr ""
@@ -5615,7 +5588,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76 part/models.py:3648 part/templates/part/category.html:16
+#: part/models.py:76 part/models.py:3692 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -5630,9 +5603,9 @@ msgstr ""
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:134 stock/models.py:187 templates/js/translated/stock.js:2743
+#: part/models.py:134 stock/models.py:124 templates/js/translated/stock.js:2705
#: templates/js/translated/table_filters.js:239
-#: templates/js/translated/table_filters.js:283
+#: templates/js/translated/table_filters.js:259
msgid "Structural"
msgstr ""
@@ -5648,12 +5621,11 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:145 stock/models.py:85 stock/models.py:175
-#: templates/InvenTree/settings/settings_staff_js.html:436
+#: part/models.py:145 stock/models.py:113
msgid "Icon"
msgstr ""
-#: part/models.py:146 stock/models.py:176
+#: part/models.py:146 stock/models.py:114
msgid "Icon (optional)"
msgstr ""
@@ -5661,719 +5633,719 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:478
+#: part/models.py:479
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:520 part/models.py:532
+#: part/models.py:521 part/models.py:533
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:602
+#: part/models.py:605
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: part/models.py:672
+#: part/models.py:676
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:799
+#: part/models.py:807
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:804
+#: part/models.py:812
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:818
+#: part/models.py:826
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:842 part/models.py:3704
+#: part/models.py:850 part/models.py:3748
msgid "Part name"
msgstr ""
-#: part/models.py:848
+#: part/models.py:856
msgid "Is Template"
msgstr ""
-#: part/models.py:849
+#: part/models.py:857
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:859
+#: part/models.py:867
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:874
msgid "Part description (optional)"
msgstr ""
-#: part/models.py:872
+#: part/models.py:880
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:879 part/models.py:3222 part/models.py:3647
-#: part/serializers.py:352 part/serializers.py:958
+#: part/models.py:887 part/models.py:3259 part/models.py:3691
+#: part/serializers.py:349 part/serializers.py:964
#: part/templates/part/part_base.html:262
#: templates/InvenTree/settings/settings_staff_js.html:280
#: templates/js/translated/notification.js:60
-#: templates/js/translated/part.js:2372
+#: templates/js/translated/part.js:2351
msgid "Category"
msgstr ""
-#: part/models.py:880
+#: part/models.py:888
msgid "Part category"
msgstr ""
-#: part/models.py:886
+#: part/models.py:894
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:891
+#: part/models.py:899
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:917
+#: part/models.py:925
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:962 part/templates/part/part_base.html:378
+#: part/models.py:970 part/templates/part/part_base.html:378
msgid "Default Supplier"
msgstr ""
-#: part/models.py:963
+#: part/models.py:971
msgid "Default supplier part"
msgstr ""
-#: part/models.py:970
+#: part/models.py:978
msgid "Default Expiry"
msgstr ""
-#: part/models.py:971
+#: part/models.py:979
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:978
+#: part/models.py:986
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:985
+#: part/models.py:993
msgid "Units of measure for this part"
msgstr ""
-#: part/models.py:994
+#: part/models.py:1002
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:1000
+#: part/models.py:1008
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:1006
+#: part/models.py:1014
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:1011
+#: part/models.py:1019
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:1016
+#: part/models.py:1024
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:1021
+#: part/models.py:1029
msgid "Is this part active?"
msgstr ""
-#: part/models.py:1026
+#: part/models.py:1034
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "BOM checksum"
msgstr ""
-#: part/models.py:1028
+#: part/models.py:1036
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1031
+#: part/models.py:1039
msgid "BOM checked by"
msgstr ""
-#: part/models.py:1033
+#: part/models.py:1041
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1037
+#: part/models.py:1045
msgid "Creation User"
msgstr ""
-#: part/models.py:1039
+#: part/models.py:1047
msgid "User responsible for this part"
msgstr ""
-#: part/models.py:1043 part/templates/part/part_base.html:341
+#: part/models.py:1051 part/templates/part/part_base.html:341
#: stock/templates/stock/item_base.html:452
-#: templates/js/translated/part.js:2466
+#: templates/js/translated/part.js:2445
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:1914
+#: part/models.py:1931
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2880
+#: part/models.py:2914
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2931
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2898
+#: part/models.py:2932
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2903
+#: part/models.py:2937
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2904
+#: part/models.py:2938
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2909
+#: part/models.py:2943
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2910
+#: part/models.py:2944
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2915
+#: part/models.py:2949
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2916
+#: part/models.py:2950
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2955
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2922
+#: part/models.py:2956
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2927
+#: part/models.py:2961
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2928
+#: part/models.py:2962
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2933
+#: part/models.py:2967
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2934
+#: part/models.py:2968
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2939
+#: part/models.py:2973
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2940
+#: part/models.py:2974
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2945
+#: part/models.py:2979
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2946
+#: part/models.py:2980
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2951
+#: part/models.py:2985
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2952
+#: part/models.py:2986
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2958
+#: part/models.py:2992
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2964
+#: part/models.py:2998
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2969
+#: part/models.py:3003
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2970
+#: part/models.py:3004
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2975
+#: part/models.py:3009
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2976
+#: part/models.py:3010
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2981
+#: part/models.py:3015
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2982
+#: part/models.py:3016
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2987
+#: part/models.py:3021
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2988
+#: part/models.py:3022
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3007
+#: part/models.py:3041
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3012
+#: part/models.py:3046
msgid "Item Count"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:3047
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3020
+#: part/models.py:3054
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3024 part/models.py:3104
+#: part/models.py:3058 part/models.py:3141
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report_base.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
-#: templates/InvenTree/settings/settings_staff_js.html:520
-#: templates/js/translated/part.js:1082 templates/js/translated/pricing.js:826
+#: templates/InvenTree/settings/settings_staff_js.html:436
+#: templates/js/translated/part.js:1066 templates/js/translated/pricing.js:826
#: templates/js/translated/pricing.js:950
-#: templates/js/translated/purchase_order.js:1710
-#: templates/js/translated/stock.js:2792
+#: templates/js/translated/purchase_order.js:1706
+#: templates/js/translated/stock.js:2743
msgid "Date"
msgstr ""
-#: part/models.py:3025
+#: part/models.py:3059
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3033
+#: part/models.py:3067
msgid "Additional notes"
msgstr ""
-#: part/models.py:3041
+#: part/models.py:3075
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3080
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3047
+#: part/models.py:3081
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3052
+#: part/models.py:3086
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3053
+#: part/models.py:3087
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3111 templates/InvenTree/settings/settings_staff_js.html:509
+#: part/models.py:3148 templates/InvenTree/settings/settings_staff_js.html:425
msgid "Report"
msgstr ""
-#: part/models.py:3112
+#: part/models.py:3149
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3117 templates/InvenTree/settings/settings_staff_js.html:516
+#: part/models.py:3154 templates/InvenTree/settings/settings_staff_js.html:432
msgid "Part Count"
msgstr ""
-#: part/models.py:3118
+#: part/models.py:3155
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3126
+#: part/models.py:3163
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3262
+#: part/models.py:3299
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3279
+#: part/models.py:3316
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3299 templates/js/translated/part.js:2863
+#: part/models.py:3336 templates/js/translated/part.js:2842
msgid "Test Name"
msgstr ""
-#: part/models.py:3300
+#: part/models.py:3337
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3305
+#: part/models.py:3342
msgid "Test Description"
msgstr ""
-#: part/models.py:3306
+#: part/models.py:3343
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3311 templates/js/translated/part.js:2872
-#: templates/js/translated/table_filters.js:477
+#: part/models.py:3348 templates/js/translated/part.js:2851
+#: templates/js/translated/table_filters.js:453
msgid "Required"
msgstr ""
-#: part/models.py:3312
+#: part/models.py:3349
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3317 templates/js/translated/part.js:2880
+#: part/models.py:3354 templates/js/translated/part.js:2859
msgid "Requires Value"
msgstr ""
-#: part/models.py:3318
+#: part/models.py:3355
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3323 templates/js/translated/part.js:2887
+#: part/models.py:3360 templates/js/translated/part.js:2866
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3324
+#: part/models.py:3361
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3369
+#: part/models.py:3407
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3374
+#: part/models.py:3412
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3392
+#: part/models.py:3430
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3408
+#: part/models.py:3446
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3423
+#: part/models.py:3462
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3429
+#: part/models.py:3468
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3439
+#: part/models.py:3478
msgid "Parameter description"
msgstr ""
-#: part/models.py:3445 templates/js/translated/part.js:1624
-#: templates/js/translated/table_filters.js:817
+#: part/models.py:3484 templates/js/translated/part.js:1608
+#: templates/js/translated/table_filters.js:781
msgid "Checkbox"
msgstr ""
-#: part/models.py:3446
+#: part/models.py:3485
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3451 templates/js/translated/part.js:1633
+#: part/models.py:3490 templates/js/translated/part.js:1617
msgid "Choices"
msgstr ""
-#: part/models.py:3452
+#: part/models.py:3491
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3531
+#: part/models.py:3573
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3573
+#: part/models.py:3616
msgid "Parent Part"
msgstr ""
-#: part/models.py:3578 part/models.py:3653 part/models.py:3654
+#: part/models.py:3621 part/models.py:3697 part/models.py:3698
#: templates/InvenTree/settings/settings_staff_js.html:275
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Data"
msgstr ""
-#: part/models.py:3583
+#: part/models.py:3626
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3658 templates/InvenTree/settings/settings_staff_js.html:284
+#: part/models.py:3702 templates/InvenTree/settings/settings_staff_js.html:284
msgid "Default Value"
msgstr ""
-#: part/models.py:3659
+#: part/models.py:3703
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3696
+#: part/models.py:3740
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3700
+#: part/models.py:3744
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3708
+#: part/models.py:3752
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3711
+#: part/models.py:3755
msgid "Level"
msgstr ""
-#: part/models.py:3712
+#: part/models.py:3756
msgid "BOM level"
msgstr ""
-#: part/models.py:3718 part/models.py:4116
+#: part/models.py:3762 part/models.py:4164
msgid "BOM Item"
msgstr ""
-#: part/models.py:3802
+#: part/models.py:3847
msgid "Select parent part"
msgstr ""
-#: part/models.py:3810
+#: part/models.py:3855
msgid "Sub part"
msgstr ""
-#: part/models.py:3811
+#: part/models.py:3856
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3817
+#: part/models.py:3862
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3822
+#: part/models.py:3867
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3828
+#: part/models.py:3873
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3832 part/templates/part/upload_bom.html:55
+#: part/models.py:3877 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3833
+#: part/models.py:3878
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3836
+#: part/models.py:3881
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3884
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "Checksum"
msgstr ""
-#: part/models.py:3843
+#: part/models.py:3888
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3848 templates/js/translated/table_filters.js:174
+#: part/models.py:3893 templates/js/translated/table_filters.js:174
msgid "Validated"
msgstr ""
-#: part/models.py:3849
+#: part/models.py:3894
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:3854 part/templates/part/upload_bom.html:57
+#: part/models.py:3899 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:178
#: templates/js/translated/table_filters.js:211
msgid "Gets inherited"
msgstr ""
-#: part/models.py:3855
+#: part/models.py:3900
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3860 part/templates/part/upload_bom.html:56
+#: part/models.py:3905 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1046
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3861
+#: part/models.py:3906
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3947 stock/models.py:642
+#: part/models.py:3992 stock/models.py:577
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3956 part/models.py:3958
+#: part/models.py:4001 part/models.py:4003
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4083
+#: part/models.py:4131
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4104
+#: part/models.py:4152
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4165
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4125
+#: part/models.py:4173
msgid "Substitute part"
msgstr ""
-#: part/models.py:4140
+#: part/models.py:4188
msgid "Part 1"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Part 2"
msgstr ""
-#: part/models.py:4144
+#: part/models.py:4192
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4161
+#: part/models.py:4210
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4165
+#: part/models.py:4214
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:169 part/serializers.py:192 stock/serializers.py:324
+#: part/serializers.py:170 part/serializers.py:193 stock/serializers.py:326
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:345
+#: part/serializers.py:342
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:353
+#: part/serializers.py:350
msgid "Select category"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:381
msgid "Original Part"
msgstr ""
-#: part/serializers.py:383
+#: part/serializers.py:381
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:386
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:388
+#: part/serializers.py:386
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:393 part/templates/part/detail.html:277
+#: part/serializers.py:391 part/templates/part/detail.html:277
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:393
+#: part/serializers.py:391
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:396
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:398
+#: part/serializers.py:396
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:401
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:403
+#: part/serializers.py:401
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:411
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:413
+#: part/serializers.py:411
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:417
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:417
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:429
+#: part/serializers.py:427
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:438
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:444
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:452
+#: part/serializers.py:451
msgid "Selected company is not a valid supplier"
msgstr ""
@@ -6381,186 +6353,186 @@ msgstr ""
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:470
+#: part/serializers.py:471
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:478
+#: part/serializers.py:479
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:729 part/templates/part/copy_part.html:9
-#: templates/js/translated/part.js:468
+#: part/serializers.py:732 part/templates/part/copy_part.html:9
+#: templates/js/translated/part.js:452
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:729
+#: part/serializers.py:732
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:734 templates/js/translated/part.js:102
+#: part/serializers.py:737 templates/js/translated/part.js:102
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:737
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:742
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:739
+#: part/serializers.py:742
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:745
+#: part/serializers.py:748
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:746
+#: part/serializers.py:749
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:958
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:958
+#: part/serializers.py:964
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:964
+#: part/serializers.py:970
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:969
+#: part/serializers.py:975
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:976
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:975
+#: part/serializers.py:981
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:982
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:981
+#: part/serializers.py:987
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:982
+#: part/serializers.py:988
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:989
+#: part/serializers.py:996
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1078
+#: part/serializers.py:1086
msgid "Update"
msgstr ""
-#: part/serializers.py:1079
+#: part/serializers.py:1087
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1366
+#: part/serializers.py:1374
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1374
+#: part/serializers.py:1382
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1383
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1380
+#: part/serializers.py:1388
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1381
+#: part/serializers.py:1389
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1394
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1387
+#: part/serializers.py:1395
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1392
+#: part/serializers.py:1400
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1401
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1433
+#: part/serializers.py:1441
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1434
+#: part/serializers.py:1442
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1464
+#: part/serializers.py:1472
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1508
+#: part/serializers.py:1515
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:1511
+#: part/serializers.py:1518
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1514
+#: part/serializers.py:1521
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1523
+#: part/serializers.py:1530
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1531
+#: part/serializers.py:1538
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1552
+#: part/serializers.py:1559
msgid "At least one BOM item is required"
msgstr ""
-#: part/stocktake.py:223 templates/js/translated/part.js:1063
-#: templates/js/translated/part.js:1817 templates/js/translated/part.js:1872
-#: templates/js/translated/purchase_order.js:2063
+#: part/stocktake.py:225 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1801 templates/js/translated/part.js:1856
+#: templates/js/translated/purchase_order.js:2059
msgid "Total Quantity"
msgstr ""
-#: part/stocktake.py:224
+#: part/stocktake.py:226
msgid "Total Cost Min"
msgstr ""
-#: part/stocktake.py:225
+#: part/stocktake.py:227
msgid "Total Cost Max"
msgstr ""
-#: part/stocktake.py:289
+#: part/stocktake.py:295
msgid "Stocktake Report Available"
msgstr ""
-#: part/stocktake.py:290
+#: part/stocktake.py:296
msgid "A new stocktake report is available for download"
msgstr ""
@@ -6700,9 +6672,9 @@ msgid "Add stocktake information"
msgstr ""
#: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50
-#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30
+#: stock/admin.py:130 templates/InvenTree/settings/part_stocktake.html:30
#: templates/InvenTree/settings/sidebar.html:53
-#: templates/js/translated/stock.js:2186 users/models.py:39
+#: templates/js/translated/stock.js:2148 users/models.py:39
msgid "Stocktake"
msgstr ""
@@ -6776,7 +6748,7 @@ msgid "Validate BOM"
msgstr ""
#: part/templates/part/detail.html:283 part/templates/part/detail.html:284
-#: templates/js/translated/bom.js:1314 templates/js/translated/bom.js:1315
+#: templates/js/translated/bom.js:1309 templates/js/translated/bom.js:1310
msgid "Add BOM Item"
msgstr ""
@@ -6800,15 +6772,15 @@ msgstr ""
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:659
+#: part/templates/part/detail.html:654
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:667
+#: part/templates/part/detail.html:662
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:752
+#: part/templates/part/detail.html:747
msgid "Add Test Result Template"
msgstr ""
@@ -6889,7 +6861,7 @@ msgstr ""
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:93 templates/js/translated/part.js:2288
+#: part/templates/part/part_base.html:93 templates/js/translated/part.js:2267
msgid "Part actions"
msgstr ""
@@ -6936,8 +6908,8 @@ msgstr ""
#: part/templates/part/part_base.html:148
#: templates/js/translated/company.js:1277
#: templates/js/translated/company.js:1565
-#: templates/js/translated/model_renderers.js:304
-#: templates/js/translated/part.js:811 templates/js/translated/part.js:1215
+#: templates/js/translated/model_renderers.js:291
+#: templates/js/translated/part.js:795 templates/js/translated/part.js:1199
msgid "Inactive"
msgstr ""
@@ -6960,7 +6932,7 @@ msgstr ""
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1213
+#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1208
msgid "Can Build"
msgstr ""
@@ -6969,7 +6941,7 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:324 templates/js/translated/bom.js:1071
-#: templates/js/translated/part.js:1261 templates/js/translated/part.js:2439
+#: templates/js/translated/part.js:1245 templates/js/translated/part.js:2418
#: templates/js/translated/pricing.js:391
#: templates/js/translated/pricing.js:1054
msgid "Price Range"
@@ -6992,7 +6964,7 @@ msgstr ""
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:474 templates/js/translated/part.js:2282
+#: part/templates/part/part_base.html:474 templates/js/translated/part.js:2261
msgid "part"
msgstr ""
@@ -7066,9 +7038,9 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
#: templates/InvenTree/settings/sidebar.html:51
-#: templates/js/translated/part.js:1239 templates/js/translated/part.js:2140
-#: templates/js/translated/part.js:2387 templates/js/translated/stock.js:1059
-#: templates/js/translated/stock.js:2040 templates/navbar.html:31
+#: templates/js/translated/part.js:1223 templates/js/translated/part.js:2124
+#: templates/js/translated/part.js:2366 templates/js/translated/stock.js:1021
+#: templates/js/translated/stock.js:2002 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -7097,11 +7069,11 @@ msgstr ""
msgid "Refresh Part Pricing"
msgstr ""
-#: part/templates/part/prices.html:25 stock/admin.py:147
+#: part/templates/part/prices.html:25 stock/admin.py:129
#: stock/templates/stock/item_base.html:447
#: templates/js/translated/company.js:1693
#: templates/js/translated/company.js:1703
-#: templates/js/translated/stock.js:2216
+#: templates/js/translated/stock.js:2178
msgid "Last Updated"
msgstr ""
@@ -7164,8 +7136,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:701
-#: templates/js/translated/part.js:2135 templates/js/translated/part.js:2137
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:685
+#: templates/js/translated/part.js:2119 templates/js/translated/part.js:2121
msgid "No Stock"
msgstr ""
@@ -7218,11 +7190,11 @@ msgstr ""
msgid "Create a new variant part from this template"
msgstr ""
-#: part/templatetags/inventree_extras.py:188
+#: part/templatetags/inventree_extras.py:189
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:238
+#: part/templatetags/inventree_extras.py:241
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
@@ -7260,7 +7232,7 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:109
+#: plugin/base/barcodes/api.py:54 plugin/base/barcodes/api.py:110
msgid "Missing barcode data"
msgstr ""
@@ -7272,12 +7244,12 @@ msgstr ""
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:119
-#: templates/js/translated/purchase_order.js:1391
+#: plugin/base/barcodes/api.py:120
+#: templates/js/translated/purchase_order.js:1387
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:215
+#: plugin/base/barcodes/api.py:217
msgid "No match found for provided value"
msgstr ""
@@ -7295,7 +7267,6 @@ msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:28
#: plugin/builtin/integration/core_notifications.py:34
-#: plugin/builtin/integration/currency_exchange.py:22
#: plugin/builtin/labels/inventree_label.py:23
msgid "InvenTree contributors"
msgstr ""
@@ -7334,18 +7305,10 @@ msgstr ""
msgid "URL that is used to send messages to a slack channel"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:162
+#: plugin/builtin/integration/core_notifications.py:163
msgid "Open link"
msgstr ""
-#: plugin/builtin/integration/currency_exchange.py:23
-msgid "InvenTree Currency Exchange"
-msgstr ""
-
-#: plugin/builtin/integration/currency_exchange.py:24
-msgid "Default currency exchange integration"
-msgstr ""
-
#: plugin/builtin/labels/inventree_label.py:20
msgid "InvenTree PDF label printer"
msgstr ""
@@ -7362,23 +7325,6 @@ msgstr ""
msgid "Enable debug mode - returns raw HTML instead of PDF"
msgstr ""
-#: plugin/installer.py:140
-msgid "Permission denied: only staff users can install plugins"
-msgstr ""
-
-#: plugin/installer.py:186
-msgid "Installed plugin successfully"
-msgstr ""
-
-#: plugin/installer.py:192
-#, python-brace-format
-msgid "Installed plugin into {path}"
-msgstr ""
-
-#: plugin/installer.py:201
-msgid "Plugin installation failed"
-msgstr ""
-
#: plugin/models.py:28
msgid "Plugin Configuration"
msgstr ""
@@ -7403,43 +7349,37 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:129 templates/js/translated/table_filters.js:370
-#: templates/js/translated/table_filters.js:500
-msgid "Installed"
-msgstr ""
-
-#: plugin/models.py:138
+#: plugin/models.py:131
msgid "Sample plugin"
msgstr ""
-#: plugin/models.py:146
+#: plugin/models.py:140
msgid "Builtin Plugin"
msgstr ""
-#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9
-#: templates/js/translated/plugin.js:50
+#: plugin/models.py:166 templates/InvenTree/settings/plugin_settings.html:9
msgid "Plugin"
msgstr ""
-#: plugin/models.py:222
+#: plugin/models.py:217
msgid "Method"
msgstr ""
-#: plugin/plugin.py:265
+#: plugin/plugin.py:267
msgid "No author found"
msgstr ""
-#: plugin/registry.py:510
+#: plugin/registry.py:478
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:512
+#: plugin/registry.py:480
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:514
+#: plugin/registry.py:482
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -7476,184 +7416,148 @@ msgstr ""
msgid "A setting with multiple choices"
msgstr ""
-#: plugin/samples/integration/sample_currency_exchange.py:15
-msgid "Sample currency exchange plugin"
-msgstr ""
-
-#: plugin/samples/integration/sample_currency_exchange.py:18
-msgid "InvenTree Contributors"
-msgstr ""
-
-#: plugin/serializers.py:87
+#: plugin/serializers.py:90
msgid "Source URL"
msgstr ""
-#: plugin/serializers.py:88
+#: plugin/serializers.py:91
msgid "Source for the package - this can be a custom registry or a VCS path"
msgstr ""
-#: plugin/serializers.py:93
+#: plugin/serializers.py:96
msgid "Package Name"
msgstr ""
-#: plugin/serializers.py:94
+#: plugin/serializers.py:97
msgid "Name for the Plugin Package - can also contain a version indicator"
msgstr ""
-#: plugin/serializers.py:97
+#: plugin/serializers.py:100
msgid "Confirm plugin installation"
msgstr ""
-#: plugin/serializers.py:98
+#: plugin/serializers.py:101
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
msgstr ""
-#: plugin/serializers.py:110
+#: plugin/serializers.py:113
msgid "Installation not confirmed"
msgstr ""
-#: plugin/serializers.py:112
+#: plugin/serializers.py:115
msgid "Either packagename of URL must be provided"
msgstr ""
-#: plugin/serializers.py:141
+#: plugin/serializers.py:193
msgid "Activate Plugin"
msgstr ""
-#: plugin/serializers.py:142
+#: plugin/serializers.py:194
msgid "Activate this plugin"
msgstr ""
-#: report/api.py:172
+#: report/api.py:174
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:209 report/api.py:245
+#: report/api.py:211 report/api.py:247
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
-#: report/api.py:322
+#: report/api.py:325
msgid "Test report"
msgstr ""
-#: report/helpers.py:13
-msgid "A4"
-msgstr ""
-
-#: report/helpers.py:14
-msgid "A3"
-msgstr ""
-
-#: report/helpers.py:15
-msgid "Legal"
-msgstr ""
-
-#: report/helpers.py:16
-msgid "Letter"
-msgstr ""
-
-#: report/models.py:171
+#: report/models.py:165
msgid "Template name"
msgstr ""
-#: report/models.py:177
+#: report/models.py:171
msgid "Report template file"
msgstr ""
-#: report/models.py:184
+#: report/models.py:178
msgid "Report template description"
msgstr ""
-#: report/models.py:190
+#: report/models.py:184
msgid "Report revision number (auto-increments)"
msgstr ""
-#: report/models.py:198
-msgid "Page size for PDF reports"
-msgstr ""
-
-#: report/models.py:203
-msgid "Landscape"
-msgstr ""
-
-#: report/models.py:204
-msgid "Render report in landscape orientation"
-msgstr ""
-
-#: report/models.py:305
+#: report/models.py:271
msgid "Pattern for generating report filenames"
msgstr ""
-#: report/models.py:312
+#: report/models.py:278
msgid "Report template is enabled"
msgstr ""
-#: report/models.py:333
+#: report/models.py:299
msgid "StockItem query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:341
+#: report/models.py:307
msgid "Include Installed Tests"
msgstr ""
-#: report/models.py:342
+#: report/models.py:308
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:402
+#: report/models.py:369
msgid "Build Filters"
msgstr ""
-#: report/models.py:403
+#: report/models.py:370
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:444
+#: report/models.py:411
msgid "Part Filters"
msgstr ""
-#: report/models.py:445
+#: report/models.py:412
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:479
+#: report/models.py:446
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:517
+#: report/models.py:484
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:555
+#: report/models.py:522
msgid "Return order query filters"
msgstr ""
-#: report/models.py:606
+#: report/models.py:575
msgid "Snippet"
msgstr ""
-#: report/models.py:607
+#: report/models.py:576
msgid "Report snippet file"
msgstr ""
-#: report/models.py:611
+#: report/models.py:580
msgid "Snippet file description"
msgstr ""
-#: report/models.py:647
+#: report/models.py:617
msgid "Asset"
msgstr ""
-#: report/models.py:648
+#: report/models.py:618
msgid "Report asset file"
msgstr ""
-#: report/models.py:655
+#: report/models.py:625
msgid "Asset file description"
msgstr ""
-#: report/models.py:676
+#: report/models.py:646
msgid "stock location query filters (comma-separated list of key=value pairs)"
msgstr ""
@@ -7674,7 +7578,7 @@ msgstr ""
#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527
#: templates/js/translated/pricing.js:596
#: templates/js/translated/pricing.js:834
-#: templates/js/translated/purchase_order.js:2094
+#: templates/js/translated/purchase_order.js:2090
#: templates/js/translated/sales_order.js:1834
msgid "Unit Price"
msgstr ""
@@ -7687,23 +7591,23 @@ msgstr ""
#: report/templates/report/inventree_po_report_base.html:72
#: report/templates/report/inventree_so_report_base.html:72
-#: templates/js/translated/purchase_order.js:1996
+#: templates/js/translated/purchase_order.js:1992
#: templates/js/translated/sales_order.js:1803
msgid "Total"
msgstr ""
#: report/templates/report/inventree_return_order_report_base.html:25
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:790 stock/templates/stock/item_base.html:312
-#: templates/js/translated/build.js:508 templates/js/translated/build.js:1348
-#: templates/js/translated/build.js:2337
-#: templates/js/translated/model_renderers.js:222
+#: stock/models.py:725 stock/templates/stock/item_base.html:312
+#: templates/js/translated/build.js:508 templates/js/translated/build.js:1340
+#: templates/js/translated/build.js:2325
+#: templates/js/translated/model_renderers.js:219
#: templates/js/translated/return_order.js:537
-#: templates/js/translated/return_order.js:721
+#: templates/js/translated/return_order.js:717
#: templates/js/translated/sales_order.js:312
#: templates/js/translated/sales_order.js:1608
#: templates/js/translated/sales_order.js:1693
-#: templates/js/translated/stock.js:596
+#: templates/js/translated/stock.js:562
msgid "Serial Number"
msgstr ""
@@ -7720,12 +7624,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:102
-#: stock/models.py:2336 templates/js/translated/stock.js:1475
+#: stock/models.py:2274 templates/js/translated/stock.js:1437
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:103
-#: stock/models.py:2342
+#: stock/models.py:2280
msgid "Result"
msgstr ""
@@ -7751,377 +7655,356 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:168
-#: stock/admin.py:122 templates/js/translated/stock.js:700
-#: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3079
+#: stock/admin.py:104 templates/js/translated/stock.js:666
+#: templates/js/translated/stock.js:837 templates/js/translated/stock.js:3030
msgid "Serial"
msgstr ""
-#: stock/admin.py:40 stock/admin.py:126
+#: stock/admin.py:39 stock/admin.py:108
msgid "Location ID"
msgstr ""
-#: stock/admin.py:41 stock/admin.py:127
+#: stock/admin.py:40 stock/admin.py:109
msgid "Location Name"
msgstr ""
-#: stock/admin.py:45 stock/templates/stock/location.html:130
+#: stock/admin.py:44 stock/templates/stock/location.html:130
#: stock/templates/stock/location.html:136
msgid "Location Path"
msgstr ""
-#: stock/admin.py:118
+#: stock/admin.py:100
msgid "Stock Item ID"
msgstr ""
-#: stock/admin.py:125
+#: stock/admin.py:107
msgid "Status Code"
msgstr ""
-#: stock/admin.py:128
+#: stock/admin.py:110
msgid "Supplier Part ID"
msgstr ""
-#: stock/admin.py:129
+#: stock/admin.py:111
msgid "Supplier ID"
msgstr ""
-#: stock/admin.py:130
+#: stock/admin.py:112
msgid "Supplier Name"
msgstr ""
-#: stock/admin.py:131
+#: stock/admin.py:113
msgid "Customer ID"
msgstr ""
-#: stock/admin.py:132 stock/models.py:773
+#: stock/admin.py:114 stock/models.py:708
#: stock/templates/stock/item_base.html:355
msgid "Installed In"
msgstr ""
-#: stock/admin.py:133
+#: stock/admin.py:115
msgid "Build ID"
msgstr ""
-#: stock/admin.py:135
+#: stock/admin.py:117
msgid "Sales Order ID"
msgstr ""
-#: stock/admin.py:136
+#: stock/admin.py:118
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:143
+#: stock/admin.py:125
msgid "Review Needed"
msgstr ""
-#: stock/admin.py:144
+#: stock/admin.py:126
msgid "Delete on Deplete"
msgstr ""
-#: stock/admin.py:149 stock/models.py:854
+#: stock/admin.py:131 stock/models.py:789
#: stock/templates/stock/item_base.html:434
-#: templates/js/translated/stock.js:2200
+#: templates/js/translated/stock.js:2162
msgid "Expiry Date"
msgstr ""
-#: stock/api.py:499 templates/js/translated/table_filters.js:427
+#: stock/api.py:434 templates/js/translated/table_filters.js:403
msgid "External Location"
msgstr ""
-#: stock/api.py:693
+#: stock/api.py:641
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:700
+#: stock/api.py:648
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:728
+#: stock/api.py:676
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:737
+#: stock/api.py:685
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:760
+#: stock/api.py:708
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/models.py:56
-msgid "Stock Location type"
-msgstr ""
-
-#: stock/models.py:57
-msgid "Stock Location types"
-msgstr ""
-
-#: stock/models.py:86
-msgid "Default icon for all locations that have no icon set (optional)"
-msgstr ""
-
-#: stock/models.py:116 stock/models.py:757
+#: stock/models.py:54 stock/models.py:692
#: stock/templates/stock/location.html:17
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:117 stock/templates/stock/location.html:178
+#: stock/models.py:55 stock/templates/stock/location.html:178
#: templates/InvenTree/search.html:166 templates/js/translated/search.js:178
#: users/models.py:40
msgid "Stock Locations"
msgstr ""
-#: stock/models.py:181 stock/models.py:893
+#: stock/models.py:118 stock/models.py:828
#: stock/templates/stock/item_base.html:248
msgid "Owner"
msgstr ""
-#: stock/models.py:182 stock/models.py:894
+#: stock/models.py:119 stock/models.py:829
msgid "Select Owner"
msgstr ""
-#: stock/models.py:189
+#: stock/models.py:126
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:195 templates/js/translated/stock.js:2752
+#: stock/models.py:132 templates/js/translated/stock.js:2714
#: templates/js/translated/table_filters.js:243
msgid "External"
msgstr ""
-#: stock/models.py:196
+#: stock/models.py:133
msgid "This is an external stock location"
msgstr ""
-#: stock/models.py:202 templates/js/translated/stock.js:2761
-#: templates/js/translated/table_filters.js:246
-msgid "Location type"
-msgstr ""
-
-#: stock/models.py:205
-msgid "Stock location type of this location"
-msgstr ""
-
-#: stock/models.py:270
+#: stock/models.py:175
msgid "You cannot make this stock location structural because some stock items are already located into it!"
msgstr ""
-#: stock/models.py:622
+#: stock/models.py:557
msgid "Stock items cannot be located into structural stock locations!"
msgstr ""
-#: stock/models.py:648 stock/serializers.py:229
+#: stock/models.py:583 stock/serializers.py:230
msgid "Stock item cannot be created for virtual parts"
msgstr ""
-#: stock/models.py:665
+#: stock/models.py:600
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:675 stock/models.py:684
+#: stock/models.py:610 stock/models.py:619
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:676
+#: stock/models.py:611
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:698
+#: stock/models.py:633
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:704
+#: stock/models.py:639
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:718
+#: stock/models.py:653
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:732
+#: stock/models.py:667
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:742
+#: stock/models.py:677
msgid "Base part"
msgstr ""
-#: stock/models.py:750
+#: stock/models.py:685
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:760
+#: stock/models.py:695
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:767 stock/serializers.py:1269
+#: stock/models.py:702 stock/serializers.py:1239
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:776
+#: stock/models.py:711
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:792
+#: stock/models.py:727
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:806 stock/serializers.py:1254
+#: stock/models.py:741 stock/serializers.py:1224
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:811
+#: stock/models.py:746
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:818
+#: stock/models.py:753
msgid "Source Build"
msgstr ""
-#: stock/models.py:820
+#: stock/models.py:755
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:826 stock/templates/stock/item_base.html:364
+#: stock/models.py:761 stock/templates/stock/item_base.html:364
msgid "Consumed By"
msgstr ""
-#: stock/models.py:828
+#: stock/models.py:763
msgid "Build order which consumed this stock item"
msgstr ""
-#: stock/models.py:839
+#: stock/models.py:774
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:842
+#: stock/models.py:777
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:848
+#: stock/models.py:783
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:855
+#: stock/models.py:790
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:805
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:889
+#: stock/models.py:824
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:917
+#: stock/models.py:852
msgid "Converted to part"
msgstr ""
-#: stock/models.py:1442
+#: stock/models.py:1378
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1448
+#: stock/models.py:1384
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1454
+#: stock/models.py:1390
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1457
+#: stock/models.py:1393
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1460
+#: stock/models.py:1396
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1467 stock/serializers.py:449
+#: stock/models.py:1403 stock/serializers.py:451
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1538
+#: stock/models.py:1474
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1541
+#: stock/models.py:1477
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1544
+#: stock/models.py:1480
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1547
+#: stock/models.py:1483
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1550
+#: stock/models.py:1486
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1489
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1560 stock/serializers.py:1165
+#: stock/models.py:1496 stock/serializers.py:1135
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1564
+#: stock/models.py:1500
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1568
+#: stock/models.py:1504
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1572
+#: stock/models.py:1508
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1766
+#: stock/models.py:1702
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2254
+#: stock/models.py:2192
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2312
+#: stock/models.py:2250
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2318
+#: stock/models.py:2256
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2275
msgid "Test name"
msgstr ""
-#: stock/models.py:2343
+#: stock/models.py:2281
msgid "Test result"
msgstr ""
-#: stock/models.py:2349
+#: stock/models.py:2287
msgid "Test output value"
msgstr ""
-#: stock/models.py:2356
+#: stock/models.py:2294
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2362
+#: stock/models.py:2300
msgid "Test notes"
msgstr ""
@@ -8133,141 +8016,141 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:321
+#: stock/serializers.py:323
msgid "Purchase price of this stock item, per unit or pack"
msgstr ""
-#: stock/serializers.py:382
+#: stock/serializers.py:384
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:394
+#: stock/serializers.py:396
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:400
+#: stock/serializers.py:402
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:411 stock/serializers.py:1122 stock/serializers.py:1393
+#: stock/serializers.py:413 stock/serializers.py:1092 stock/serializers.py:1363
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:418
+#: stock/serializers.py:420
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:428
+#: stock/serializers.py:430
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:489
+#: stock/serializers.py:491
msgid "Select stock item to install"
msgstr ""
-#: stock/serializers.py:494 stock/serializers.py:552 stock/serializers.py:646
-#: stock/serializers.py:702
+#: stock/serializers.py:496 stock/serializers.py:554 stock/serializers.py:650
+#: stock/serializers.py:708
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/serializers.py:503
+#: stock/serializers.py:505
msgid "Stock item is unavailable"
msgstr ""
-#: stock/serializers.py:510
+#: stock/serializers.py:512
msgid "Selected part is not in the Bill of Materials"
msgstr ""
-#: stock/serializers.py:547
+#: stock/serializers.py:549
msgid "Destination location for uninstalled item"
msgstr ""
-#: stock/serializers.py:586
+#: stock/serializers.py:588
msgid "Select part to convert stock item into"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:599
msgid "Selected part is not a valid option for conversion"
msgstr ""
-#: stock/serializers.py:610
+#: stock/serializers.py:614
msgid "Cannot convert stock item with assigned SupplierPart"
msgstr ""
-#: stock/serializers.py:641
+#: stock/serializers.py:645
msgid "Destination location for returned item"
msgstr ""
-#: stock/serializers.py:684
+#: stock/serializers.py:689
msgid "Select stock items to change status"
msgstr ""
-#: stock/serializers.py:690
+#: stock/serializers.py:696
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:977
+#: stock/serializers.py:947
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:981
+#: stock/serializers.py:951
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:985
+#: stock/serializers.py:955
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1016
+#: stock/serializers.py:986
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1022
+#: stock/serializers.py:992
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1030
+#: stock/serializers.py:1000
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1040 stock/serializers.py:1300
+#: stock/serializers.py:1010 stock/serializers.py:1270
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1129
+#: stock/serializers.py:1099
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1134
+#: stock/serializers.py:1104
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1135
+#: stock/serializers.py:1105
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1140
+#: stock/serializers.py:1110
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1141
+#: stock/serializers.py:1111
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1151
+#: stock/serializers.py:1121
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1240
+#: stock/serializers.py:1210
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1261
+#: stock/serializers.py:1231
msgid "Stock item status code"
msgstr ""
-#: stock/serializers.py:1290
+#: stock/serializers.py:1260
msgid "Stock transaction notes"
msgstr ""
@@ -8308,7 +8191,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3230
+#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3177
msgid "Install Stock Item"
msgstr ""
@@ -8316,7 +8199,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1667
+#: stock/templates/stock/item.html:296 templates/js/translated/stock.js:1629
msgid "Add Test Result"
msgstr ""
@@ -8339,17 +8222,17 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:80
-#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1792
+#: stock/templates/stock/location.html:89 templates/js/translated/stock.js:1754
msgid "Count stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: templates/js/translated/stock.js:1774
+#: templates/js/translated/stock.js:1736
msgid "Add stock"
msgstr ""
#: stock/templates/stock/item_base.html:83
-#: templates/js/translated/stock.js:1783
+#: templates/js/translated/stock.js:1745
msgid "Remove stock"
msgstr ""
@@ -8358,12 +8241,12 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:89
-#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1801
+#: stock/templates/stock/location.html:95 templates/js/translated/stock.js:1763
msgid "Transfer stock"
msgstr ""
#: stock/templates/stock/item_base.html:92
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1817
msgid "Assign to customer"
msgstr ""
@@ -8404,7 +8287,7 @@ msgid "Delete stock item"
msgstr ""
#: stock/templates/stock/item_base.html:170 templates/InvenTree/search.html:139
-#: templates/js/translated/build.js:2105 templates/navbar.html:38
+#: templates/js/translated/build.js:2093 templates/navbar.html:38
msgid "Build"
msgstr ""
@@ -8470,7 +8353,7 @@ msgid "Available Quantity"
msgstr ""
#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/build.js:2362
+#: templates/js/translated/build.js:2350
msgid "No location set"
msgstr ""
@@ -8488,7 +8371,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:438
-#: templates/js/translated/table_filters.js:435
+#: templates/js/translated/table_filters.js:411
msgid "Expired"
msgstr ""
@@ -8498,7 +8381,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:440
-#: templates/js/translated/table_filters.js:441
+#: templates/js/translated/table_filters.js:417
msgid "Stale"
msgstr ""
@@ -8507,7 +8390,7 @@ msgid "No stocktake performed"
msgstr ""
#: stock/templates/stock/item_base.html:508
-#: templates/js/translated/stock.js:1922
+#: templates/js/translated/stock.js:1884
msgid "stock item"
msgstr ""
@@ -8539,7 +8422,7 @@ msgstr ""
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:663
+#: stock/templates/stock/item_base.html:659
msgid "Return to Stock"
msgstr ""
@@ -8617,20 +8500,20 @@ msgstr ""
msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:288
-#: templates/js/translated/stock.js:2543
+#: stock/templates/stock/location.html:279
+#: templates/js/translated/stock.js:2505
msgid "stock location"
msgstr ""
-#: stock/templates/stock/location.html:316
+#: stock/templates/stock/location.html:307
msgid "Scanned stock container into this location"
msgstr ""
-#: stock/templates/stock/location.html:389
+#: stock/templates/stock/location.html:380
msgid "Stock Location QR Code"
msgstr ""
-#: stock/templates/stock/location.html:400
+#: stock/templates/stock/location.html:391
msgid "Link Barcode to Stock Location"
msgstr ""
@@ -8940,7 +8823,7 @@ msgid "Plugins"
msgstr ""
#: templates/InvenTree/settings/plugin.html:41
-#: templates/js/translated/plugin.js:150
+#: templates/js/translated/plugin.js:151
msgid "Install Plugin"
msgstr ""
@@ -8966,7 +8849,7 @@ msgid "Plugin information"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:42
-#: templates/js/translated/plugin.js:85
+#: templates/js/translated/plugin.js:89
msgid "Version"
msgstr ""
@@ -9003,8 +8886,7 @@ msgid "Installation path"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:100
-#: templates/js/translated/plugin.js:67
-#: templates/js/translated/table_filters.js:492
+#: templates/js/translated/plugin.js:77
msgid "Builtin"
msgstr ""
@@ -9012,31 +8894,21 @@ msgstr ""
msgid "This is a builtin plugin which cannot be disabled"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:107
-#: templates/js/translated/plugin.js:71
-#: templates/js/translated/table_filters.js:496
-msgid "Sample"
-msgstr ""
-
-#: templates/InvenTree/settings/plugin_settings.html:108
-msgid "This is a sample plugin"
-msgstr ""
-
-#: templates/InvenTree/settings/plugin_settings.html:113
+#: templates/InvenTree/settings/plugin_settings.html:106
msgid "Commit Author"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:117
+#: templates/InvenTree/settings/plugin_settings.html:110
#: templates/about.html:36
msgid "Commit Date"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:121
+#: templates/InvenTree/settings/plugin_settings.html:114
#: templates/about.html:29
msgid "Commit Hash"
msgstr ""
-#: templates/InvenTree/settings/plugin_settings.html:125
+#: templates/InvenTree/settings/plugin_settings.html:118
msgid "Commit Message"
msgstr ""
@@ -9125,9 +8997,9 @@ msgid "Edit"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:81
-#: templates/js/translated/forms.js:508 templates/js/translated/helpers.js:105
-#: templates/js/translated/part.js:389 templates/js/translated/pricing.js:629
-#: templates/js/translated/stock.js:245 users/models.py:257
+#: templates/js/translated/forms.js:506 templates/js/translated/helpers.js:105
+#: templates/js/translated/part.js:373 templates/js/translated/pricing.js:629
+#: templates/js/translated/stock.js:215 users/models.py:256
msgid "Delete"
msgstr ""
@@ -9162,12 +9034,12 @@ msgid "No category parameter templates found"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:288
-#: templates/js/translated/part.js:1642
+#: templates/js/translated/part.js:1626
msgid "Edit Template"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:289
-#: templates/js/translated/part.js:1643
+#: templates/js/translated/part.js:1627
msgid "Delete Template"
msgstr ""
@@ -9175,44 +9047,18 @@ msgstr ""
msgid "Edit Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:333
+#: templates/InvenTree/settings/settings_staff_js.html:329
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:368
+#: templates/InvenTree/settings/settings_staff_js.html:364
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:398
+#: templates/InvenTree/settings/settings_staff_js.html:390
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings_staff_js.html:420
-msgid "No stock location types found"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:441
-msgid "Location count"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:446
-#: templates/InvenTree/settings/settings_staff_js.html:460
-msgid "Edit Location Type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:447
-msgid "Delete Location type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:470
-msgid "Delete Location Type"
-msgstr ""
-
-#: templates/InvenTree/settings/settings_staff_js.html:480
-#: templates/InvenTree/settings/stock.html:35
-msgid "New Location Type"
-msgstr ""
-
#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -9231,9 +9077,9 @@ msgid "Home Page"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:15
-#: templates/js/translated/forms.js:2045 templates/js/translated/tables.js:543
-#: templates/navbar.html:107 templates/search.html:8
-#: templates/search_form.html:6 templates/search_form.html:7
+#: templates/js/translated/tables.js:543 templates/navbar.html:107
+#: templates/search.html:8 templates/search_form.html:6
+#: templates/search_form.html:7
msgid "Search"
msgstr ""
@@ -9266,10 +9112,6 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:31
-msgid "Stock Location Types"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:13
msgid "Account Settings"
msgstr ""
@@ -9579,7 +9421,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:728
+#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:726
msgid "Confirm"
msgstr ""
@@ -9759,26 +9601,18 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
-msgid "Pending Database Migrations"
-msgstr ""
-
-#: templates/base.html:116
-msgid "There are pending database migrations which require attention"
-msgstr ""
-
#: templates/email/build_order_completed.html:9
#: templates/email/new_order_assigned.html:9
#: templates/email/overdue_build_order.html:9
@@ -9807,7 +9641,7 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1668 templates/js/translated/build.js:2541
+#: templates/js/translated/bom.js:1663 templates/js/translated/build.js:2529
msgid "Required Quantity"
msgstr ""
@@ -9821,15 +9655,15 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/part.js:3182
+#: templates/js/translated/part.js:3161
msgid "Minimum Quantity"
msgstr ""
-#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1130
+#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1124
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1131
+#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1125
msgid "No response from the InvenTree server"
msgstr ""
@@ -9841,27 +9675,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1140
+#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1134
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1141
+#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1135
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1145
+#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1139
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1146
+#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1140
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1150
+#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1144
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1151
+#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1145
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -9873,27 +9707,19 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1155
+#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1149
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1156
+#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1150
msgid "Connection timeout while requesting data from server"
msgstr ""
#: templates/js/translated/api.js:261
-msgid "Error 503: Service Unavailable"
-msgstr ""
-
-#: templates/js/translated/api.js:262
-msgid "The server is currently unavailable"
-msgstr ""
-
-#: templates/js/translated/api.js:265
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:266
+#: templates/js/translated/api.js:262
msgid "Error code"
msgstr ""
@@ -9962,7 +9788,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:252
-#: templates/js/translated/modals.js:1120
+#: templates/js/translated/modals.js:1114
msgid "Invalid server response"
msgstr ""
@@ -9986,7 +9812,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1155
+#: templates/js/translated/barcode.js:550 templates/js/translated/stock.js:1117
msgid "Remove stock item"
msgstr ""
@@ -10057,8 +9883,8 @@ msgid "Row Data"
msgstr ""
#: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700
-#: templates/js/translated/modals.js:74 templates/js/translated/modals.js:628
-#: templates/js/translated/modals.js:752 templates/js/translated/modals.js:1060
+#: templates/js/translated/modals.js:71 templates/js/translated/modals.js:622
+#: templates/js/translated/modals.js:746 templates/js/translated/modals.js:1054
#: templates/js/translated/purchase_order.js:802 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
@@ -10176,7 +10002,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2485
+#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2473
msgid "Variant stock allowed"
msgstr ""
@@ -10184,74 +10010,74 @@ msgstr ""
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:1139
+#: templates/js/translated/bom.js:1134
msgid "BOM pricing is complete"
msgstr ""
-#: templates/js/translated/bom.js:1144
+#: templates/js/translated/bom.js:1139
msgid "BOM pricing is incomplete"
msgstr ""
-#: templates/js/translated/bom.js:1151
+#: templates/js/translated/bom.js:1146
msgid "No pricing available"
msgstr ""
-#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2579
+#: templates/js/translated/bom.js:1177 templates/js/translated/build.js:2567
#: templates/js/translated/sales_order.js:1907
msgid "No Stock Available"
msgstr ""
-#: templates/js/translated/bom.js:1187 templates/js/translated/build.js:2583
+#: templates/js/translated/bom.js:1182 templates/js/translated/build.js:2571
msgid "Includes variant and substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1189 templates/js/translated/build.js:2585
-#: templates/js/translated/part.js:1253
+#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2573
+#: templates/js/translated/part.js:1237
#: templates/js/translated/sales_order.js:1904
msgid "Includes variant stock"
msgstr ""
-#: templates/js/translated/bom.js:1191 templates/js/translated/build.js:2587
+#: templates/js/translated/bom.js:1186 templates/js/translated/build.js:2575
msgid "Includes substitute stock"
msgstr ""
-#: templates/js/translated/bom.js:1219 templates/js/translated/build.js:2570
+#: templates/js/translated/bom.js:1214 templates/js/translated/build.js:2558
msgid "Consumable item"
msgstr ""
-#: templates/js/translated/bom.js:1279
+#: templates/js/translated/bom.js:1274
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1281
+#: templates/js/translated/bom.js:1276
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:1283
+#: templates/js/translated/bom.js:1278
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:1285 templates/js/translated/bom.js:1480
+#: templates/js/translated/bom.js:1280 templates/js/translated/bom.js:1475
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1287
+#: templates/js/translated/bom.js:1282
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1307
+#: templates/js/translated/bom.js:1302
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:1391
+#: templates/js/translated/bom.js:1386
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1651 templates/js/translated/build.js:2470
+#: templates/js/translated/bom.js:1646 templates/js/translated/build.js:2458
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1677
+#: templates/js/translated/bom.js:1672
msgid "Inherited from parent BOM"
msgstr ""
@@ -10295,13 +10121,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:357 templates/js/translated/stock.js:119
-#: templates/js/translated/stock.js:294
+#: templates/js/translated/build.js:357 templates/js/translated/stock.js:118
+#: templates/js/translated/stock.js:264
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:359 templates/js/translated/stock.js:121
-#: templates/js/translated/stock.js:296
+#: templates/js/translated/build.js:359 templates/js/translated/stock.js:120
+#: templates/js/translated/stock.js:266
msgid "Latest serial number"
msgstr ""
@@ -10353,13 +10179,13 @@ msgstr ""
msgid "Deallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:572 templates/js/translated/build.js:700
-#: templates/js/translated/build.js:826
+#: templates/js/translated/build.js:572 templates/js/translated/build.js:696
+#: templates/js/translated/build.js:818
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:573 templates/js/translated/build.js:701
-#: templates/js/translated/build.js:827
+#: templates/js/translated/build.js:573 templates/js/translated/build.js:697
+#: templates/js/translated/build.js:819
msgid "At least one build output must be selected"
msgstr ""
@@ -10367,265 +10193,264 @@ msgstr ""
msgid "Selected build outputs will be marked as complete"
msgstr ""
-#: templates/js/translated/build.js:591 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:849
+#: templates/js/translated/build.js:591 templates/js/translated/build.js:721
+#: templates/js/translated/build.js:841
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:619
+#: templates/js/translated/build.js:615
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:716
+#: templates/js/translated/build.js:712
msgid "Selected build outputs will be marked as scrapped"
msgstr ""
-#: templates/js/translated/build.js:718
+#: templates/js/translated/build.js:714
msgid "Scrapped output are marked as rejected"
msgstr ""
-#: templates/js/translated/build.js:719
+#: templates/js/translated/build.js:715
msgid "Allocated stock items will no longer be available"
msgstr ""
-#: templates/js/translated/build.js:720
+#: templates/js/translated/build.js:716
msgid "The completion status of the build order will not be adjusted"
msgstr ""
-#: templates/js/translated/build.js:751
+#: templates/js/translated/build.js:743
msgid "Scrap Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:841
+#: templates/js/translated/build.js:833
msgid "Selected build outputs will be deleted"
msgstr ""
-#: templates/js/translated/build.js:843
+#: templates/js/translated/build.js:835
msgid "Build output data will be permanently deleted"
msgstr ""
-#: templates/js/translated/build.js:844
+#: templates/js/translated/build.js:836
msgid "Allocated stock items will be returned to stock"
msgstr ""
-#: templates/js/translated/build.js:862
+#: templates/js/translated/build.js:854
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:941
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:978 templates/js/translated/build.js:2326
+#: templates/js/translated/build.js:970 templates/js/translated/build.js:2314
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:984
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1006
msgid "Complete outputs"
msgstr ""
-#: templates/js/translated/build.js:1032
+#: templates/js/translated/build.js:1024
msgid "Scrap outputs"
msgstr ""
-#: templates/js/translated/build.js:1050
+#: templates/js/translated/build.js:1042
msgid "Delete outputs"
msgstr ""
-#: templates/js/translated/build.js:1104
+#: templates/js/translated/build.js:1096
msgid "build output"
msgstr ""
-#: templates/js/translated/build.js:1105
+#: templates/js/translated/build.js:1097
msgid "build outputs"
msgstr ""
-#: templates/js/translated/build.js:1109
+#: templates/js/translated/build.js:1101
msgid "Build output actions"
msgstr ""
-#: templates/js/translated/build.js:1278
+#: templates/js/translated/build.js:1270
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1371
+#: templates/js/translated/build.js:1363
msgid "Allocated Lines"
msgstr ""
-#: templates/js/translated/build.js:1385
+#: templates/js/translated/build.js:1377
msgid "Required Tests"
msgstr ""
-#: templates/js/translated/build.js:1557
+#: templates/js/translated/build.js:1549
#: templates/js/translated/purchase_order.js:627
#: templates/js/translated/sales_order.js:1168
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1558
+#: templates/js/translated/build.js:1550
#: templates/js/translated/sales_order.js:1169
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1621
+#: templates/js/translated/build.js:1613
#: templates/js/translated/sales_order.js:1118
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1698
+#: templates/js/translated/build.js:1690
msgid "All Parts Allocated"
msgstr ""
-#: templates/js/translated/build.js:1699
+#: templates/js/translated/build.js:1691
msgid "All selected parts have been fully allocated"
msgstr ""
-#: templates/js/translated/build.js:1713
+#: templates/js/translated/build.js:1705
#: templates/js/translated/sales_order.js:1183
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1741
+#: templates/js/translated/build.js:1733
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1752
+#: templates/js/translated/build.js:1744
#: templates/js/translated/sales_order.js:1280
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1825
+#: templates/js/translated/build.js:1817
#: templates/js/translated/sales_order.js:1359
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1922
+#: templates/js/translated/build.js:1914
msgid "Automatic Stock Allocation"
msgstr ""
-#: templates/js/translated/build.js:1923
+#: templates/js/translated/build.js:1915
msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
msgstr ""
-#: templates/js/translated/build.js:1925
+#: templates/js/translated/build.js:1917
msgid "If a location is specified, stock will only be allocated from that location"
msgstr ""
-#: templates/js/translated/build.js:1926
+#: templates/js/translated/build.js:1918
msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
msgstr ""
-#: templates/js/translated/build.js:1927
+#: templates/js/translated/build.js:1919
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:1958
+#: templates/js/translated/build.js:1946
msgid "Allocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:2064
+#: templates/js/translated/build.js:2052
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2099 templates/js/translated/build.js:2464
-#: templates/js/translated/forms.js:2041 templates/js/translated/forms.js:2057
-#: templates/js/translated/part.js:2311 templates/js/translated/part.js:2737
-#: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681
+#: templates/js/translated/build.js:2087 templates/js/translated/build.js:2452
+#: templates/js/translated/part.js:2290 templates/js/translated/part.js:2716
+#: templates/js/translated/stock.js:1915 templates/js/translated/stock.js:2643
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:2113
+#: templates/js/translated/build.js:2101
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:2159
+#: templates/js/translated/build.js:2147
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2195 templates/js/translated/stock.js:3013
+#: templates/js/translated/build.js:2183 templates/js/translated/stock.js:2964
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:2210
+#: templates/js/translated/build.js:2198
msgid "group"
msgstr ""
-#: templates/js/translated/build.js:2371
+#: templates/js/translated/build.js:2359
#: templates/js/translated/sales_order.js:1643
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:2372
+#: templates/js/translated/build.js:2360
#: templates/js/translated/sales_order.js:1644
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:2387
+#: templates/js/translated/build.js:2375
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:2399
+#: templates/js/translated/build.js:2387
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:2440
+#: templates/js/translated/build.js:2428
msgid "build line"
msgstr ""
-#: templates/js/translated/build.js:2441
+#: templates/js/translated/build.js:2429
msgid "build lines"
msgstr ""
-#: templates/js/translated/build.js:2459
+#: templates/js/translated/build.js:2447
msgid "No build lines found"
msgstr ""
-#: templates/js/translated/build.js:2489 templates/js/translated/part.js:787
-#: templates/js/translated/part.js:1199
+#: templates/js/translated/build.js:2477 templates/js/translated/part.js:771
+#: templates/js/translated/part.js:1183
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/build.js:2524
+#: templates/js/translated/build.js:2512
msgid "Unit Quantity"
msgstr ""
-#: templates/js/translated/build.js:2573
+#: templates/js/translated/build.js:2561
#: templates/js/translated/sales_order.js:1914
msgid "Insufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:2575
+#: templates/js/translated/build.js:2563
#: templates/js/translated/sales_order.js:1912
msgid "Sufficient stock available"
msgstr ""
-#: templates/js/translated/build.js:2622
+#: templates/js/translated/build.js:2610
msgid "Consumable Item"
msgstr ""
-#: templates/js/translated/build.js:2627
+#: templates/js/translated/build.js:2615
msgid "Tracked item"
msgstr ""
-#: templates/js/translated/build.js:2634
+#: templates/js/translated/build.js:2622
#: templates/js/translated/sales_order.js:2013
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:2639 templates/js/translated/stock.js:1836
+#: templates/js/translated/build.js:2627 templates/js/translated/stock.js:1798
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:2643
+#: templates/js/translated/build.js:2631
#: templates/js/translated/sales_order.js:2007
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:2647
+#: templates/js/translated/build.js:2635
msgid "Remove stock allocation"
msgstr ""
@@ -10772,7 +10597,7 @@ msgid "Delete Parameters"
msgstr ""
#: templates/js/translated/company.js:1181
-#: templates/js/translated/company.js:1469 templates/js/translated/part.js:2239
+#: templates/js/translated/company.js:1469 templates/js/translated/part.js:2218
msgid "Order parts"
msgstr ""
@@ -10789,34 +10614,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:1269
-#: templates/js/translated/company.js:1557 templates/js/translated/part.js:795
-#: templates/js/translated/part.js:1207
+#: templates/js/translated/company.js:1557 templates/js/translated/part.js:779
+#: templates/js/translated/part.js:1191
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:1273
-#: templates/js/translated/company.js:1561 templates/js/translated/part.js:799
-#: templates/js/translated/part.js:1211
+#: templates/js/translated/company.js:1561 templates/js/translated/part.js:783
+#: templates/js/translated/part.js:1195
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:1393 templates/js/translated/part.js:1461
+#: templates/js/translated/company.js:1393 templates/js/translated/part.js:1445
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:1428 templates/js/translated/part.js:1524
+#: templates/js/translated/company.js:1428 templates/js/translated/part.js:1508
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:1429 templates/js/translated/part.js:1525
+#: templates/js/translated/company.js:1429 templates/js/translated/part.js:1509
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:1446 templates/js/translated/part.js:1430
+#: templates/js/translated/company.js:1446 templates/js/translated/part.js:1414
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:1455 templates/js/translated/part.js:1546
+#: templates/js/translated/company.js:1455 templates/js/translated/part.js:1530
msgid "Delete Parameter"
msgstr ""
@@ -10912,61 +10737,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:371 templates/js/translated/forms.js:386
-#: templates/js/translated/forms.js:400 templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
+#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:373
+#: templates/js/translated/forms.js:371
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:388
+#: templates/js/translated/forms.js:386
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:402
+#: templates/js/translated/forms.js:400
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:416
+#: templates/js/translated/forms.js:414
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:754
+#: templates/js/translated/forms.js:752
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:855
+#: templates/js/translated/forms.js:853
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1403 templates/modals.html:19
+#: templates/js/translated/forms.js:1401 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1857
+#: templates/js/translated/forms.js:1855
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:2161 templates/js/translated/search.js:239
+#: templates/js/translated/forms.js:2071 templates/js/translated/search.js:239
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2375
+#: templates/js/translated/forms.js:2285
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2832
+#: templates/js/translated/forms.js:2742
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2832
+#: templates/js/translated/forms.js:2742
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2844
+#: templates/js/translated/forms.js:2754
msgid "Select Columns"
msgstr ""
@@ -11026,62 +10851,62 @@ msgstr ""
msgid "Labels sent to printer"
msgstr ""
-#: templates/js/translated/modals.js:58 templates/js/translated/modals.js:158
-#: templates/js/translated/modals.js:683
+#: templates/js/translated/modals.js:55 templates/js/translated/modals.js:152
+#: templates/js/translated/modals.js:677
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:63 templates/js/translated/modals.js:157
-#: templates/js/translated/modals.js:751 templates/js/translated/modals.js:1059
+#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:151
+#: templates/js/translated/modals.js:745 templates/js/translated/modals.js:1053
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:156
+#: templates/js/translated/modals.js:150
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:445
+#: templates/js/translated/modals.js:439
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:596
+#: templates/js/translated/modals.js:590
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:682
+#: templates/js/translated/modals.js:676
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:740
+#: templates/js/translated/modals.js:734
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:1011
+#: templates/js/translated/modals.js:1005
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:1011
+#: templates/js/translated/modals.js:1005
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:1023
+#: templates/js/translated/modals.js:1017
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1120
+#: templates/js/translated/modals.js:1114
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1135
+#: templates/js/translated/modals.js:1129
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1136
+#: templates/js/translated/modals.js:1130
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1159
+#: templates/js/translated/modals.js:1153
msgid "Error requesting form data"
msgstr ""
@@ -11091,7 +10916,7 @@ msgstr ""
#: templates/js/translated/news.js:38
#: templates/js/translated/notification.js:46
-#: templates/js/translated/part.js:1601
+#: templates/js/translated/part.js:1585
msgid "ID"
msgstr ""
@@ -11140,7 +10965,7 @@ msgid "Delete Line"
msgstr ""
#: templates/js/translated/order.js:281
-#: templates/js/translated/purchase_order.js:1969
+#: templates/js/translated/purchase_order.js:1965
msgid "No line items found"
msgstr ""
@@ -11172,339 +10997,339 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:305
+#: templates/js/translated/part.js:297
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:329 templates/js/translated/stock.js:175
+#: templates/js/translated/part.js:313 templates/js/translated/stock.js:146
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:349
+#: templates/js/translated/part.js:333
msgid "Create Part Category"
msgstr ""
-#: templates/js/translated/part.js:352
+#: templates/js/translated/part.js:336
msgid "Create new category after this one"
msgstr ""
-#: templates/js/translated/part.js:353
+#: templates/js/translated/part.js:337
msgid "Part category created"
msgstr ""
-#: templates/js/translated/part.js:367
+#: templates/js/translated/part.js:351
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:380
+#: templates/js/translated/part.js:364
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:385
+#: templates/js/translated/part.js:369
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:378
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:398
+#: templates/js/translated/part.js:382
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:403
+#: templates/js/translated/part.js:387
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:427
+#: templates/js/translated/part.js:411
msgid "Create Part"
msgstr ""
-#: templates/js/translated/part.js:429
+#: templates/js/translated/part.js:413
msgid "Create another part after this one"
msgstr ""
-#: templates/js/translated/part.js:430
+#: templates/js/translated/part.js:414
msgid "Part created successfully"
msgstr ""
-#: templates/js/translated/part.js:458
+#: templates/js/translated/part.js:442
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:444
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:471
+#: templates/js/translated/part.js:455
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:512
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:513
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:527
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:545
+#: templates/js/translated/part.js:529
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:546
+#: templates/js/translated/part.js:530
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:531
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:538
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:590
+#: templates/js/translated/part.js:574
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:592
+#: templates/js/translated/part.js:576
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:597
+#: templates/js/translated/part.js:581
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:599
+#: templates/js/translated/part.js:583
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:616
+#: templates/js/translated/part.js:600
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:626
+#: templates/js/translated/part.js:610
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:629
+#: templates/js/translated/part.js:613
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:654
+#: templates/js/translated/part.js:638
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:682
-#: templates/js/translated/table_filters.js:743
+#: templates/js/translated/part.js:666
+#: templates/js/translated/table_filters.js:707
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:685
+#: templates/js/translated/part.js:669
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:745
+#: templates/js/translated/part.js:729
msgid "Demand"
msgstr ""
-#: templates/js/translated/part.js:768
+#: templates/js/translated/part.js:752
msgid "Unit"
msgstr ""
-#: templates/js/translated/part.js:791 templates/js/translated/part.js:1203
+#: templates/js/translated/part.js:775 templates/js/translated/part.js:1187
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:803
+#: templates/js/translated/part.js:787
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:807
+#: templates/js/translated/part.js:791
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:886
+#: templates/js/translated/part.js:870
msgid "Schedule generation of a new stocktake report."
msgstr ""
-#: templates/js/translated/part.js:886
+#: templates/js/translated/part.js:870
msgid "Once complete, the stocktake report will be available for download."
msgstr ""
-#: templates/js/translated/part.js:894
+#: templates/js/translated/part.js:878
msgid "Generate Stocktake Report"
msgstr ""
-#: templates/js/translated/part.js:898
+#: templates/js/translated/part.js:882
msgid "Stocktake report scheduled"
msgstr ""
-#: templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1031
msgid "No stocktake information available"
msgstr ""
-#: templates/js/translated/part.js:1105 templates/js/translated/part.js:1141
+#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1125
msgid "Edit Stocktake Entry"
msgstr ""
-#: templates/js/translated/part.js:1109 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:1093 templates/js/translated/part.js:1135
msgid "Delete Stocktake Entry"
msgstr ""
-#: templates/js/translated/part.js:1278
+#: templates/js/translated/part.js:1262
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1596
+#: templates/js/translated/part.js:1580
msgid "No part parameter templates found"
msgstr ""
-#: templates/js/translated/part.js:1659
+#: templates/js/translated/part.js:1643
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/js/translated/part.js:1671
+#: templates/js/translated/part.js:1655
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/js/translated/part.js:1679
+#: templates/js/translated/part.js:1663
msgid "Delete Part Parameter Template"
msgstr ""
-#: templates/js/translated/part.js:1713
-#: templates/js/translated/purchase_order.js:1637
+#: templates/js/translated/part.js:1697
+#: templates/js/translated/purchase_order.js:1633
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/part.js:1856
-#: templates/js/translated/purchase_order.js:2132
-#: templates/js/translated/return_order.js:753
+#: templates/js/translated/part.js:1840
+#: templates/js/translated/purchase_order.js:2128
+#: templates/js/translated/return_order.js:749
#: templates/js/translated/sales_order.js:1872
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/part.js:1901
-#: templates/js/translated/purchase_order.js:2199
+#: templates/js/translated/part.js:1885
+#: templates/js/translated/purchase_order.js:2195
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/part.js:1964
+#: templates/js/translated/part.js:1948
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1986
+#: templates/js/translated/part.js:1970
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:2074 templates/js/translated/part.js:2501
+#: templates/js/translated/part.js:2058 templates/js/translated/part.js:2480
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:2195
+#: templates/js/translated/part.js:2179
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:2200
+#: templates/js/translated/part.js:2184
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:2230
+#: templates/js/translated/part.js:2209
msgid "Set category"
msgstr ""
-#: templates/js/translated/part.js:2283
+#: templates/js/translated/part.js:2262
msgid "parts"
msgstr ""
-#: templates/js/translated/part.js:2379
+#: templates/js/translated/part.js:2358
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:2526 templates/js/translated/part.js:2656
-#: templates/js/translated/stock.js:2640
+#: templates/js/translated/part.js:2505 templates/js/translated/part.js:2635
+#: templates/js/translated/stock.js:2602
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:2542
+#: templates/js/translated/part.js:2521
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:2640
+#: templates/js/translated/part.js:2619
msgid "No subcategories found"
msgstr ""
-#: templates/js/translated/part.js:2676 templates/js/translated/stock.js:2660
+#: templates/js/translated/part.js:2655 templates/js/translated/stock.js:2622
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2756
+#: templates/js/translated/part.js:2735
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2772
+#: templates/js/translated/part.js:2751
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2849
+#: templates/js/translated/part.js:2828
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2900 templates/js/translated/stock.js:1436
+#: templates/js/translated/part.js:2879 templates/js/translated/stock.js:1398
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2901 templates/js/translated/stock.js:1437
-#: templates/js/translated/stock.js:1699
+#: templates/js/translated/part.js:2880 templates/js/translated/stock.js:1399
+#: templates/js/translated/stock.js:1661
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2905
+#: templates/js/translated/part.js:2884
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2921
+#: templates/js/translated/part.js:2900
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2935
+#: templates/js/translated/part.js:2914
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:3014 templates/js/translated/part.js:3015
+#: templates/js/translated/part.js:2993 templates/js/translated/part.js:2994
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:3017
+#: templates/js/translated/part.js:2996
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:3023
+#: templates/js/translated/part.js:3002
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:3073
+#: templates/js/translated/part.js:3052
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:3079
+#: templates/js/translated/part.js:3058
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:3175
+#: templates/js/translated/part.js:3154
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:3191
+#: templates/js/translated/part.js:3170
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:3236
+#: templates/js/translated/part.js:3215
msgid "Minimum Stock Level"
msgstr ""
@@ -11512,47 +11337,51 @@ msgstr ""
msgid "No plugins found"
msgstr ""
-#: templates/js/translated/plugin.js:57
-msgid "This plugin is no longer installed"
-msgstr ""
-
-#: templates/js/translated/plugin.js:59
+#: templates/js/translated/plugin.js:54
msgid "This plugin is active"
msgstr ""
-#: templates/js/translated/plugin.js:61
-msgid "This plugin is installed but not active"
+#: templates/js/translated/plugin.js:56
+msgid "This plugin is not active"
msgstr ""
-#: templates/js/translated/plugin.js:116 templates/js/translated/plugin.js:185
+#: templates/js/translated/plugin.js:62
+msgid "Plugin Description"
+msgstr ""
+
+#: templates/js/translated/plugin.js:81
+msgid "Sample"
+msgstr ""
+
+#: templates/js/translated/plugin.js:117 templates/js/translated/plugin.js:183
msgid "Disable Plugin"
msgstr ""
-#: templates/js/translated/plugin.js:118 templates/js/translated/plugin.js:185
+#: templates/js/translated/plugin.js:119 templates/js/translated/plugin.js:183
msgid "Enable Plugin"
msgstr ""
-#: templates/js/translated/plugin.js:157
+#: templates/js/translated/plugin.js:158
msgid "The Plugin was installed"
msgstr ""
-#: templates/js/translated/plugin.js:176
+#: templates/js/translated/plugin.js:174
msgid "Are you sure you want to enable this plugin?"
msgstr ""
-#: templates/js/translated/plugin.js:180
+#: templates/js/translated/plugin.js:178
msgid "Are you sure you want to disable this plugin?"
msgstr ""
-#: templates/js/translated/plugin.js:188
+#: templates/js/translated/plugin.js:186
msgid "Enable"
msgstr ""
-#: templates/js/translated/plugin.js:188
+#: templates/js/translated/plugin.js:186
msgid "Disable"
msgstr ""
-#: templates/js/translated/plugin.js:202
+#: templates/js/translated/plugin.js:200
msgid "Plugin updated"
msgstr ""
@@ -11749,80 +11578,80 @@ msgstr ""
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/purchase_order.js:1318
-#: templates/js/translated/return_order.js:558
+#: templates/js/translated/purchase_order.js:1314
+#: templates/js/translated/return_order.js:554
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1319
+#: templates/js/translated/purchase_order.js:1315
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1387
+#: templates/js/translated/purchase_order.js:1383
msgid "Scan Item Barcode"
msgstr ""
-#: templates/js/translated/purchase_order.js:1388
+#: templates/js/translated/purchase_order.js:1384
msgid "Scan barcode on incoming item (must not match any existing stock items)"
msgstr ""
-#: templates/js/translated/purchase_order.js:1402
+#: templates/js/translated/purchase_order.js:1398
msgid "Invalid barcode data"
msgstr ""
-#: templates/js/translated/purchase_order.js:1664
+#: templates/js/translated/purchase_order.js:1660
#: templates/js/translated/return_order.js:283
#: templates/js/translated/sales_order.js:771
#: templates/js/translated/sales_order.js:995
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/purchase_order.js:1726
+#: templates/js/translated/purchase_order.js:1722
#: templates/js/translated/return_order.js:351
#: templates/js/translated/sales_order.js:848
#: templates/js/translated/sales_order.js:1008
msgid "Items"
msgstr ""
-#: templates/js/translated/purchase_order.js:1822
+#: templates/js/translated/purchase_order.js:1818
msgid "All selected Line items will be deleted"
msgstr ""
-#: templates/js/translated/purchase_order.js:1840
+#: templates/js/translated/purchase_order.js:1836
msgid "Delete selected Line items?"
msgstr ""
-#: templates/js/translated/purchase_order.js:1895
+#: templates/js/translated/purchase_order.js:1891
#: templates/js/translated/sales_order.js:2067
msgid "Duplicate Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:1910
+#: templates/js/translated/purchase_order.js:1906
#: templates/js/translated/return_order.js:473
-#: templates/js/translated/return_order.js:666
+#: templates/js/translated/return_order.js:662
#: templates/js/translated/sales_order.js:2080
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:1921
-#: templates/js/translated/return_order.js:679
+#: templates/js/translated/purchase_order.js:1917
+#: templates/js/translated/return_order.js:675
#: templates/js/translated/sales_order.js:2091
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2203
+#: templates/js/translated/purchase_order.js:2199
#: templates/js/translated/sales_order.js:2021
msgid "Duplicate line item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2204
-#: templates/js/translated/return_order.js:798
+#: templates/js/translated/purchase_order.js:2200
+#: templates/js/translated/return_order.js:794
#: templates/js/translated/sales_order.js:2022
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/purchase_order.js:2205
-#: templates/js/translated/return_order.js:802
+#: templates/js/translated/purchase_order.js:2201
+#: templates/js/translated/return_order.js:798
#: templates/js/translated/sales_order.js:2028
msgid "Delete line item"
msgstr ""
@@ -11885,16 +11714,16 @@ msgstr ""
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/return_order.js:559
+#: templates/js/translated/return_order.js:555
msgid "Receive Return Order Items"
msgstr ""
-#: templates/js/translated/return_order.js:690
+#: templates/js/translated/return_order.js:686
#: templates/js/translated/sales_order.js:2227
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/return_order.js:795
+#: templates/js/translated/return_order.js:791
msgid "Mark item as received"
msgstr ""
@@ -12037,7 +11866,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:1620
#: templates/js/translated/sales_order.js:1707
-#: templates/js/translated/stock.js:1744
+#: templates/js/translated/stock.js:1706
msgid "Shipped to customer"
msgstr ""
@@ -12099,472 +11928,464 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:98
+#: templates/js/translated/stock.js:97
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:129
+#: templates/js/translated/stock.js:128
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:139
-msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on"
-msgstr ""
-
-#: templates/js/translated/stock.js:152
+#: templates/js/translated/stock.js:137
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:166
-msgid "Add Location type"
-msgstr ""
-
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:172
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:217
+#: templates/js/translated/stock.js:187
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:219
+#: templates/js/translated/stock.js:189
msgid "Create another location after this one"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:190
msgid "Stock location created"
msgstr ""
-#: templates/js/translated/stock.js:234
+#: templates/js/translated/stock.js:204
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:241
+#: templates/js/translated/stock.js:211
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:250
+#: templates/js/translated/stock.js:220
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:254
+#: templates/js/translated/stock.js:224
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:259
+#: templates/js/translated/stock.js:229
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:313
+#: templates/js/translated/stock.js:283
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:349
+#: templates/js/translated/stock.js:319
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: templates/js/translated/stock.js:362
+#: templates/js/translated/stock.js:328
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:334
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:439
+#: templates/js/translated/stock.js:405
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:459
+#: templates/js/translated/stock.js:425
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:475
+#: templates/js/translated/stock.js:441
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:480
+#: templates/js/translated/stock.js:446
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:501
+#: templates/js/translated/stock.js:467
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:543
+#: templates/js/translated/stock.js:509
msgid "Create another item after this one"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:521
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:534
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:593
+#: templates/js/translated/stock.js:559
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:564
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:614
+#: templates/js/translated/stock.js:580
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:634
+#: templates/js/translated/stock.js:600
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:643
+#: templates/js/translated/stock.js:609
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:751
+#: templates/js/translated/stock.js:717
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:752
+#: templates/js/translated/stock.js:718
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:829
+#: templates/js/translated/stock.js:795
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:830
+#: templates/js/translated/stock.js:796
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:832
+#: templates/js/translated/stock.js:798
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:833
+#: templates/js/translated/stock.js:799
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:928
+#: templates/js/translated/stock.js:890
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:929
+#: templates/js/translated/stock.js:891
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1024
+#: templates/js/translated/stock.js:986
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:1025
+#: templates/js/translated/stock.js:987
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:1031
+#: templates/js/translated/stock.js:993
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:1032
+#: templates/js/translated/stock.js:994
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:1036
+#: templates/js/translated/stock.js:998
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:1037
+#: templates/js/translated/stock.js:999
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:1041
+#: templates/js/translated/stock.js:1003
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:1042 users/models.py:253
+#: templates/js/translated/stock.js:1004 users/models.py:252
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1008
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1105
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1143
+#: templates/js/translated/stock.js:1105
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1177 templates/js/translated/stock.js:3258
+#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:3205
msgid "Select Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:1178
+#: templates/js/translated/stock.js:1140
msgid "Select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1224
+#: templates/js/translated/stock.js:1186
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1322
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1362
+#: templates/js/translated/stock.js:1324
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1367
+#: templates/js/translated/stock.js:1329
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1429
+#: templates/js/translated/stock.js:1391
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1394
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/stock.js:1418
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:1482
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1682
+#: templates/js/translated/stock.js:1644
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1704
+#: templates/js/translated/stock.js:1666
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1736
+#: templates/js/translated/stock.js:1698
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1740
+#: templates/js/translated/stock.js:1702
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1748
+#: templates/js/translated/stock.js:1710
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1754
+#: templates/js/translated/stock.js:1716
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1810
+#: templates/js/translated/stock.js:1772
msgid "Change stock status"
msgstr ""
-#: templates/js/translated/stock.js:1819
+#: templates/js/translated/stock.js:1781
msgid "Merge stock"
msgstr ""
-#: templates/js/translated/stock.js:1868
+#: templates/js/translated/stock.js:1830
msgid "Delete stock"
msgstr ""
-#: templates/js/translated/stock.js:1923
+#: templates/js/translated/stock.js:1885
msgid "stock items"
msgstr ""
-#: templates/js/translated/stock.js:1928
+#: templates/js/translated/stock.js:1890
msgid "Scan to location"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1901
msgid "Stock Actions"
msgstr ""
-#: templates/js/translated/stock.js:1983
+#: templates/js/translated/stock.js:1945
msgid "Load installed items"
msgstr ""
-#: templates/js/translated/stock.js:2061
+#: templates/js/translated/stock.js:2023
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:2066
+#: templates/js/translated/stock.js:2028
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:2069
+#: templates/js/translated/stock.js:2031
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2034
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:2074
+#: templates/js/translated/stock.js:2036
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:2076
+#: templates/js/translated/stock.js:2038
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2041
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2081
+#: templates/js/translated/stock.js:2043
msgid "Stock item has been consumed by a build order"
msgstr ""
-#: templates/js/translated/stock.js:2085
+#: templates/js/translated/stock.js:2047
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:2087
+#: templates/js/translated/stock.js:2049
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:2092
+#: templates/js/translated/stock.js:2054
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2056
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:2096
+#: templates/js/translated/stock.js:2058
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:2100
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/stock.js:2062
+#: templates/js/translated/table_filters.js:326
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:2265
+#: templates/js/translated/stock.js:2227
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2312
+#: templates/js/translated/stock.js:2274
msgid "Stock Value"
msgstr ""
-#: templates/js/translated/stock.js:2440
+#: templates/js/translated/stock.js:2402
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2544
+#: templates/js/translated/stock.js:2506
msgid "stock locations"
msgstr ""
-#: templates/js/translated/stock.js:2699
+#: templates/js/translated/stock.js:2661
msgid "Load Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2768
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2821
+#: templates/js/translated/stock.js:2772
msgid "No changes"
msgstr ""
-#: templates/js/translated/stock.js:2833
+#: templates/js/translated/stock.js:2784
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2855
+#: templates/js/translated/stock.js:2806
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2823
msgid "Build order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2838
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2904
+#: templates/js/translated/stock.js:2855
msgid "Sales Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2921
+#: templates/js/translated/stock.js:2872
msgid "Return Order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2940
+#: templates/js/translated/stock.js:2891
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2958
+#: templates/js/translated/stock.js:2909
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2976
+#: templates/js/translated/stock.js:2927
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2984
+#: templates/js/translated/stock.js:2935
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:3056
+#: templates/js/translated/stock.js:3007
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:3106 templates/js/translated/stock.js:3141
+#: templates/js/translated/stock.js:3057 templates/js/translated/stock.js:3092
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3163
+#: templates/js/translated/stock.js:3110
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:3184
+#: templates/js/translated/stock.js:3131
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:3185
+#: templates/js/translated/stock.js:3132
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:3187
+#: templates/js/translated/stock.js:3134
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:3188
+#: templates/js/translated/stock.js:3135
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:3189
+#: templates/js/translated/stock.js:3136
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:3190
+#: templates/js/translated/stock.js:3137
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:3203
+#: templates/js/translated/stock.js:3150
msgid "Select part to install"
msgstr ""
-#: templates/js/translated/stock.js:3259
+#: templates/js/translated/stock.js:3206
msgid "Select one or more stock items"
msgstr ""
-#: templates/js/translated/stock.js:3272
+#: templates/js/translated/stock.js:3219
msgid "Selected stock items"
msgstr ""
-#: templates/js/translated/stock.js:3276
+#: templates/js/translated/stock.js:3223
msgid "Change Stock Status"
msgstr ""
@@ -12573,23 +12394,23 @@ msgid "Has project code"
msgstr ""
#: templates/js/translated/table_filters.js:89
-#: templates/js/translated/table_filters.js:601
-#: templates/js/translated/table_filters.js:613
-#: templates/js/translated/table_filters.js:654
+#: templates/js/translated/table_filters.js:565
+#: templates/js/translated/table_filters.js:577
+#: templates/js/translated/table_filters.js:618
msgid "Order status"
msgstr ""
#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:618
-#: templates/js/translated/table_filters.js:644
-#: templates/js/translated/table_filters.js:659
+#: templates/js/translated/table_filters.js:582
+#: templates/js/translated/table_filters.js:608
+#: templates/js/translated/table_filters.js:623
msgid "Outstanding"
msgstr ""
#: templates/js/translated/table_filters.js:102
-#: templates/js/translated/table_filters.js:524
-#: templates/js/translated/table_filters.js:626
-#: templates/js/translated/table_filters.js:667
+#: templates/js/translated/table_filters.js:488
+#: templates/js/translated/table_filters.js:590
+#: templates/js/translated/table_filters.js:631
msgid "Assigned to me"
msgstr ""
@@ -12610,12 +12431,12 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:775
+#: templates/js/translated/table_filters.js:739
msgid "Has Pricing"
msgstr ""
#: templates/js/translated/table_filters.js:234
-#: templates/js/translated/table_filters.js:345
+#: templates/js/translated/table_filters.js:321
msgid "Include sublocations"
msgstr ""
@@ -12623,210 +12444,210 @@ msgstr ""
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:267
-msgid "Has location type"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:278
-#: templates/js/translated/table_filters.js:279
-#: templates/js/translated/table_filters.js:707
+#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:255
+#: templates/js/translated/table_filters.js:671
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:755
+#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:719
msgid "Subscribed"
msgstr ""
-#: templates/js/translated/table_filters.js:298
-#: templates/js/translated/table_filters.js:380
+#: templates/js/translated/table_filters.js:274
+#: templates/js/translated/table_filters.js:356
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:301
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:277
+#: templates/js/translated/table_filters.js:363
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:302
-#: templates/js/translated/table_filters.js:388
+#: templates/js/translated/table_filters.js:278
+#: templates/js/translated/table_filters.js:364
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:305
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:281
+#: templates/js/translated/table_filters.js:367
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:306
-#: templates/js/translated/table_filters.js:392
+#: templates/js/translated/table_filters.js:282
+#: templates/js/translated/table_filters.js:368
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:309
-#: templates/js/translated/table_filters.js:310
-#: templates/js/translated/table_filters.js:383
-#: templates/js/translated/table_filters.js:384
+#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:286
+#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:360
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:314
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:381
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:325
-#: templates/js/translated/table_filters.js:696
+#: templates/js/translated/table_filters.js:301
+#: templates/js/translated/table_filters.js:660
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:302
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:307
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:311
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:312
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:317
msgid "Stock is available for use"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:322
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:351
+#: templates/js/translated/table_filters.js:327
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:356
+#: templates/js/translated/table_filters.js:332
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:360
+#: templates/js/translated/table_filters.js:336
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:361
+#: templates/js/translated/table_filters.js:337
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:365
+#: templates/js/translated/table_filters.js:341
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:366
+#: templates/js/translated/table_filters.js:342
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:346
+msgid "Installed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:347
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:376
+#: templates/js/translated/table_filters.js:352
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:396
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:372
+#: templates/js/translated/table_filters.js:373
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:400
+#: templates/js/translated/table_filters.js:376
msgid "Has batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:409
+#: templates/js/translated/table_filters.js:385
msgid "Stock item is tracked by either batch code or serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:414
+#: templates/js/translated/table_filters.js:390
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:415
+#: templates/js/translated/table_filters.js:391
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:419
+#: templates/js/translated/table_filters.js:395
msgid "Expiry Date before"
msgstr ""
-#: templates/js/translated/table_filters.js:423
+#: templates/js/translated/table_filters.js:399
msgid "Expiry Date after"
msgstr ""
-#: templates/js/translated/table_filters.js:436
+#: templates/js/translated/table_filters.js:412
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:442
+#: templates/js/translated/table_filters.js:418
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:456
+#: templates/js/translated/table_filters.js:432
msgid "Test Passed"
msgstr ""
-#: templates/js/translated/table_filters.js:460
+#: templates/js/translated/table_filters.js:436
msgid "Include Installed Items"
msgstr ""
-#: templates/js/translated/table_filters.js:511
+#: templates/js/translated/table_filters.js:475
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:708
+#: templates/js/translated/table_filters.js:672
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:713
+#: templates/js/translated/table_filters.js:677
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:721
+#: templates/js/translated/table_filters.js:685
msgid "Available stock"
msgstr ""
-#: templates/js/translated/table_filters.js:729
-#: templates/js/translated/table_filters.js:825
+#: templates/js/translated/table_filters.js:693
+#: templates/js/translated/table_filters.js:789
msgid "Has Units"
msgstr ""
-#: templates/js/translated/table_filters.js:730
+#: templates/js/translated/table_filters.js:694
msgid "Part has defined units"
msgstr ""
-#: templates/js/translated/table_filters.js:734
+#: templates/js/translated/table_filters.js:698
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:735
+#: templates/js/translated/table_filters.js:699
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:739
+#: templates/js/translated/table_filters.js:703
msgid "In stock"
msgstr ""
-#: templates/js/translated/table_filters.js:747
+#: templates/js/translated/table_filters.js:711
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/table_filters.js:759
+#: templates/js/translated/table_filters.js:723
msgid "Has stocktake entries"
msgstr ""
-#: templates/js/translated/table_filters.js:821
+#: templates/js/translated/table_filters.js:785
msgid "Has Choices"
msgstr ""
@@ -13117,34 +12938,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:240
+#: users/models.py:239
msgid "Permission set"
msgstr ""
-#: users/models.py:248
+#: users/models.py:247
msgid "Group"
msgstr ""
-#: users/models.py:251
+#: users/models.py:250
msgid "View"
msgstr ""
-#: users/models.py:251
+#: users/models.py:250
msgid "Permission to view items"
msgstr ""
-#: users/models.py:253
+#: users/models.py:252
msgid "Permission to add items"
msgstr ""
-#: users/models.py:255
+#: users/models.py:254
msgid "Change"
msgstr ""
-#: users/models.py:255
+#: users/models.py:254
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:257
+#: users/models.py:256
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/order/templates/order/order_base.html b/InvenTree/order/templates/order/order_base.html
index 2a064794d8..03e533a498 100644
--- a/InvenTree/order/templates/order/order_base.html
+++ b/InvenTree/order/templates/order/order_base.html
@@ -19,10 +19,10 @@
{% endblock heading %}
{% block actions %}
-
-{% admin_url user "order.purchaseorder" order.pk as url %}
+{% if user.is_staff and roles.purchase_order.change %}
+{% url 'admin:order_purchaseorder_change' order.pk as url %}
{% include "admin_button.html" with url=url %}
-
+{% endif %}
{% if barcodes %}
diff --git a/InvenTree/order/templates/order/return_order_base.html b/InvenTree/order/templates/order/return_order_base.html
index b9c0f5e370..ce4c56a47d 100644
--- a/InvenTree/order/templates/order/return_order_base.html
+++ b/InvenTree/order/templates/order/return_order_base.html
@@ -29,9 +29,10 @@ src="{% static 'img/blank_image.png' %}"
{% endblock heading %}
{% block actions %}
-{% admin_url user "order.returnorder" order.pk as url %}
+{% if user.is_staff and roles.return_order.change %}
+{% url 'admin:order_returnorder_change' order.pk as url %}
{% include "admin_button.html" with url=url %}
-
+{% endif %}
{% if barcodes %}
diff --git a/InvenTree/order/templates/order/sales_order_base.html b/InvenTree/order/templates/order/sales_order_base.html
index 53d15b2aa0..f889168628 100644
--- a/InvenTree/order/templates/order/sales_order_base.html
+++ b/InvenTree/order/templates/order/sales_order_base.html
@@ -29,9 +29,10 @@ src="{% static 'img/blank_image.png' %}"
{% endblock heading %}
{% block actions %}
-{% admin_url user "order.salesorder" order.pk as url %}
+{% if user.is_staff and roles.sales_order.change %}
+{% url 'admin:order_salesorder_change' order.pk as url %}
{% include "admin_button.html" with url=url %}
-
+{% endif %}
{% if barcodes %}
diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html
index cfa1f17023..0dc61364d0 100644
--- a/InvenTree/part/templates/part/category.html
+++ b/InvenTree/part/templates/part/category.html
@@ -25,11 +25,10 @@
{% endblock heading %}
{% block actions %}
-{% if category %}
-{% admin_url user "part.partcategory" category.pk as url %}
+{% if category and user.is_staff and roles.part_category.change %}
+{% url 'admin:part_partcategory_change' category.pk as url %}
{% include "admin_button.html" with url=url %}
{% endif %}
-
{% settings_value "STOCKTAKE_ENABLE" as stocktake_enable %}
{% if stocktake_enable and roles.stocktake.add %}