diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index e6350d4525..4aa4626a83 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: German\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "Datum eingeben"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Bestätigen"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr "Datei-Kommentar"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr "Ungültige Auswahl"
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr "Ungültige Auswahl"
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr "Beschreibung (optional)"
msgid "parent"
msgstr "Eltern"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
@@ -522,6 +522,12 @@ msgstr "Barcode ist bereits BestandsObjekt zugeordnet"
msgid "Barcode associated with StockItem"
msgstr "Barcode zugeordnet zu BestandsObjekt"
+#: build/api.py:213
+#, fuzzy
+#| msgid "Purchase order no longer exists"
+msgid "Matching build order does not exist"
+msgstr "Bestellung existiert nicht mehr"
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Bauauftrags-Referenz"
@@ -535,18 +541,17 @@ msgstr "geplantes Bestelldatum"
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr "Zieldatum"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +562,7 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +573,9 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +611,73 @@ msgstr "Löschen des Endprodukt bestätigen"
msgid "Confirm unallocation of stock"
msgstr "Aufhebung der BestandsZuordnung bestätigen"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Bestandszuordnung bestätigen"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Bauauftrag als vollständig markieren"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr "Lagerort"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Lagerort der Endprodukte"
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr "Status"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "Bestands-Status der Endprodukte"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Bauauftrag nicht fertiggestellt"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "Fertigstellung mit nicht kompletter Bestandszuordnung bestätigen"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "Bauauftrag-Fertigstellung bestätigen"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "Abbruch bestätigen"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Bauabbruch bestätigen"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Menge der BestandsObjekte für Zuordnung auswählen"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr "Ungültige Wahl für übergeordneten Bauauftrag"
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +689,42 @@ msgstr "Bauauftrag"
msgid "Build Orders"
msgstr "Bauaufträge"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr "Referenz"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr "Kurze Beschreibung des Baus"
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Eltern-Bauauftrag"
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +732,9 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +742,106 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
msgid "Part"
msgstr "Teil"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "Teil für den Bauauftrag wählen"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr "Auftrag Referenz"
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr "Quell-Lagerort"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)"
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr "Ziel-Lagerort"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "Bau-Anzahl"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr "Anzahl der zu bauenden BestandsObjekt"
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "Fertiggestellte Teile"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "Anzahl der fertigen BestandsObjekte"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "Bauauftrags-Status"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr "Losnummer"
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "Fertiggestellt von"
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr "Aufgegeben von"
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +849,11 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +861,7 @@ msgstr "Link zu einer externen URL"
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +874,145 @@ msgstr "Link zu einer externen URL"
msgid "Notes"
msgstr "Notizen"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "Extranotizen für den Bauauftrag"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "Endprodukt bereits hergstellt"
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr "Bauauftrags-Objekt muss für Bauauftrag, Lager-Objekt und installiert_in eindeutig sein"
-
-#: build/models.py:1233
+#: build/models.py:1102
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:1237
-#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+#: build/models.py:1111
+#, fuzzy, python-brace-format
+#| msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten"
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
-msgstr "Zu viele BestandsObjekt zugewiesen"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
+msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+#, fuzzy
+#| msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Selected stock item not found in BOM"
msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden"
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr "Bauauftrag"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr "BestandsObjekt"
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr "Quell-BestandsObjekt"
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr "BestandsObjekt-Anzahl dem Bauauftrag zuweisen"
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr "Ziel-BestandsObjekt"
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr "Stücklisten-Position"
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+#, fuzzy
+#| msgid "Item must be currently in stock"
+msgid "Item must be in stock"
+msgstr "Teil muss aktuell im Bestand sein"
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr "Anzahl muss größer Null sein"
+
+#: build/serializers.py:180
+#, fuzzy
+#| msgid "Build Outputs"
+msgid "Build Output"
+msgstr "Endprodukte"
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+#, fuzzy
+#| msgid "Build output must be specified"
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr "Endprodukt muss angegeben sein"
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+#, fuzzy
+#| msgid "Valid location must be specified"
+msgid "Allocation items must be provided"
+msgstr "Gültiger Standort muss angegeben werden"
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr "Seriennummer"
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr "Lagerbestand automatisch zuweisen"
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr "Die folgenden BestandsObjekte werden den ausgewählten Endprodukten zugeordnet"
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr "Keine BestandsObjekte gefunden, die diesem Endprodukt automatisch zugewiesen werden können"
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr "BestandsObjekte müssen manuell zugewiesen werden"
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1194,6 @@ msgstr "verfolgte Teile wurden nicht vollständig zugewiesen"
msgid "The following items will be created"
msgstr "Die folgenden Objekte werden erstellt"
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr "BestandsObjekt zur Zuordnung zum ausgewählten Endprodukt auswählen"
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr "Der zugeordnete Bestand wird in den folgenden Endprodukten verbaut werden:
%(output)s"
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr "Kein Bestand verfügbar für %(part)s"
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr "Sind Sie sicher, dass sie die folgenden Bestands-Zuordnung entfernen möchten?"
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr "Der ausgeählte Bestand wird von den Endprodukten zurückgenommen werden"
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr "Ausgangs-Lager"
@@ -1219,7 +1223,7 @@ msgstr "Losnummer"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr "Erstellt"
@@ -1227,7 +1231,7 @@ msgstr "Erstellt"
msgid "No target date set"
msgstr "Kein Ziel-Datum gesetzt"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr "Fertig"
@@ -1247,15 +1251,16 @@ msgstr "Lagerbestand Bauauftrag zuweisen"
msgid "Allocate stock to build"
msgstr "Lagerbestand Bauauftrag zuweisen"
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
-msgstr "Automatisch zuweisen"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
+msgstr "Lagerbestand zuweisen"
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr "Bestandszuordnung aufheben"
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr "Bestandszuordnung aufheben"
@@ -1279,38 +1284,44 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: build/templates/build/detail.html:197
+#, fuzzy
+#| msgid "Delete selected items"
+msgid "Allocate selected items"
+msgstr "Ausgewählte Positionen löschen"
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge"
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr "Unfertige Endprodukte"
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr "Neues Endprodukt anlegen"
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr "Neues Endprodukt anlegen"
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr "Neues Endprodukt anlegen"
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr "Keine unfertigen Endprodukte verbleibend."
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr "Neues Endprodukt mit der Schaltfläche oberhalb anlegen"
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr "Fertiggestellte Endprodukte"
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1331,11 @@ msgstr "Fertiggestellte Endprodukte"
msgid "Attachments"
msgstr "Anhänge"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr "Bauauftrags-Notizen"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1347,7 @@ msgstr "Bauauftrags-Notizen"
msgid "Edit Notes"
msgstr "Anmerkungen bearbeiten"
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1356,7 @@ msgstr "Anmerkungen bearbeiten"
msgid "Add Attachment"
msgstr "Anhang hinzufügen"
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1364,7 @@ msgstr "Anhang hinzufügen"
msgid "Edit Attachment"
msgstr "Anhang bearbeiten"
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1372,7 @@ msgstr "Anhang bearbeiten"
msgid "Confirm Delete Operation"
msgstr "Löschvorgang bestätigen"
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1380,18 @@ msgstr "Löschvorgang bestätigen"
msgid "Delete Attachment"
msgstr "Anhang löschen"
+#: build/templates/build/detail.html:443
+#, fuzzy
+#| msgid "Stock allocation is incomplete"
+msgid "Allocation Complete"
+msgstr "Bestandszuordnung ist nicht vollständig"
+
+#: build/templates/build/detail.html:444
+#, fuzzy
+#| msgid "Stock item has been allocated"
+msgid "All untracked stock items have been allocated"
+msgstr "BestandsObjekt zugewiesen"
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr "Anzahl des zugeordneten Bestands für die Endprodukte ändern"
@@ -1402,11 +1425,6 @@ msgstr "Bauauftrag-details"
msgid "Details"
msgstr "Details"
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr "Lagerbestand zuweisen"
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr "Endprodukte"
@@ -1431,120 +1449,82 @@ msgstr "Alle unvollständigen Bestandszuordnungen werden vom Endprodukt entfernt
msgid "Build was cancelled"
msgstr "Bauauftrag wurde abgebrochen"
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr "Bestand dem Endprodukt zuweisen"
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr "Endprodukt anlegen"
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr "Maximale Endproduktmenge ist "
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr "Seriennummern für verfolgbare Endprodukte benötigt"
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr "Endprodukt entfernen"
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr "Entfernung von Bestands-Zuordnung bestätigen"
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr "Bestätigungsbox bestätigen"
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr "Endprodukt stimmt nicht mit Bauauftrag überein"
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr "Endprodukt muss angegeben sein"
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr "Endprodukt gelöscht"
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr "Bauauftrag fertigstellen"
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr "Bauauftrag kann nicht abgeschlossen werden, es gibt noch unvollständige Endprodukte"
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr "Bauauftrag fertiggestellt"
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr "Endprodukt fertigstellen"
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr "Ungültiger Lagerbestands-Status ausgewählt"
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr "Fertigzustellende Anzahl darf nicht die geplante Endprodukt-Anzahl überschreiten"
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr "Endprodukt-Fertigstellung bestätigen"
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr "Endprodukt fertiggestellt"
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr "Bauauftrag löschen"
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr "Teile von Bauzuordnung entfernt"
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr "Bestand dem Endprodukt zuweisen"
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr "Teil muss aktuell im Bestand sein"
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr "BestandObjekt ist zu oft zugewiesen"
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr "Verfügbar"
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr "BestandsObjekt muss ausgewählt sein"
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr "Bestandszuordnung bearbeiten"
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr "Bauobjekt aktualisiert"
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr "Dateiformat nicht unterstützt: {ext.upper()}"
@@ -1718,7 +1698,7 @@ msgstr "Kategorie-Parametervorlage kopieren"
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1708,7 @@ msgstr "Vorlage"
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1718,7 @@ msgstr "Baugruppe"
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr "Komponente"
@@ -1747,7 +1727,7 @@ msgstr "Komponente"
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr "Kaufbar"
@@ -1755,7 +1735,7 @@ msgstr "Kaufbar"
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr "Verkäuflich"
@@ -1764,7 +1744,7 @@ msgstr "Verkäuflich"
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1754,7 @@ msgstr "Nachverfolgbar"
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2273,7 @@ msgid "Point of contact"
msgstr "Anlaufstelle"
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2284,7 @@ msgstr "Link"
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr "Bild"
@@ -2407,7 +2387,7 @@ msgstr "Wert"
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr "Einheiten"
@@ -2458,16 +2438,16 @@ msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Notiz"
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
@@ -2481,7 +2461,7 @@ msgstr "Verpackungen"
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr "Vielfache"
@@ -2661,7 +2641,7 @@ msgstr "Neuer Auftrag"
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr "Zugeordneter Bestand"
@@ -2774,7 +2754,7 @@ msgstr "Herstellerteil-Bestand"
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,16 +2987,12 @@ msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
#, fuzzy
#| msgid "Purchase order no longer exists"
msgid "Matching purchase order does not exist"
msgstr "Bestellung existiert nicht mehr"
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr "Bestellung aufgeben"
@@ -3111,10 +3087,6 @@ msgstr "Geplantes Lieferdatum für Auftrag."
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr "Anzahl muss größer Null sein"
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
@@ -3234,6 +3206,10 @@ msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen"
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr "Zu viele BestandsObjekt zugewiesen"
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein"
@@ -3254,35 +3230,35 @@ msgstr "BestandsObjekt für Zuordnung auswählen"
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr "Kaufpreiswährung"
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3290,7 +3266,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr "Verkaufspreis-Währung"
@@ -3424,6 +3404,7 @@ msgstr "Auswahl duplizieren"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr "Zeile entfernen"
@@ -3561,7 +3542,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen"
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3635,18 +3616,18 @@ msgid "Sales Order Items"
msgstr "Auftrags-Positionen"
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr "Aktionen"
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr "Bestands-Zuordnung bearbeiten"
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr "Bestands-Zuordnung löschen"
@@ -3675,7 +3656,8 @@ msgid "Total price"
msgstr "Gesamtpreis"
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr "Zugeordnet"
@@ -3692,7 +3674,7 @@ msgid "Allocate serial numbers"
msgstr "Seriennummern zuweisen"
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr "Lagerbestand zuweisen"
@@ -3701,7 +3683,7 @@ msgid "Purchase stock"
msgstr "Lagerbestand kaufen"
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr "Lagerbestand bauen"
@@ -3932,7 +3914,7 @@ msgstr "Standort für anfänglichen Bestand angeben"
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr "Standard-Lagerort"
@@ -3997,7 +3979,7 @@ msgstr "Zulieferer einschließen"
msgid "Include part supplier data in exported BOM"
msgstr "Zulieferer-Daten in Stückliste-Export einschließen"
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr "Ausgangsteil"
@@ -4041,391 +4023,387 @@ msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr "Standard-Lagerort für Teile dieser Kategorie"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr "Standard Stichwörter"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr "Teil-Kategorien"
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr "Ungültige Auswahl für übergeordnetes Teil"
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, 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:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr "Nächste verfügbare Seriennummern wären"
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr "Nächste verfügbare Seriennummer ist"
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr "Die neuste Seriennummer ist"
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr "Ist eine Vorlage"
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr "Variante von"
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr "Kategorie"
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr "Revision"
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr "Standard Zulieferer"
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr "Standard Zuliefererteil"
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr "Standard Ablaufzeit"
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Lagerbestand dieses Teils"
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr "Minimaler Lagerbestand"
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Lagerbestand"
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil"
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?"
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr "Aktiv"
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:838
+#: part/models.py:839
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:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr "Bemerkungen - unterstüzt Markdown-Formatierung"
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr "Stückliste kontrolliert von"
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr "BOM Kontrolldatum"
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2096
+#: part/models.py:2100
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:2113
+#: part/models.py:2117
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:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:2152
+#: part/models.py:2156
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:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2158
+#: part/models.py:2162
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:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Ungültiges Zeichen im Vorlagename ({c})"
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr "Wert"
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2375
+#: part/models.py:2396
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:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Lagerbestand von Varianten kann für diese Stücklisten-Position verwendet werden"
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr "Stücklisten-Position"
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?"
@@ -5420,44 +5398,44 @@ msgstr "bestanden"
msgid "Fail"
msgstr "fehlgeschlagen"
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr "Falsch formatierte Daten"
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr "Ungültige Menge"
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr "Menge muss größer als Null sein"
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr "Bestand für {n} Objekte geändert"
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr "Die angegebene Menge überschreitet die Lagermenge"
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr "Gültiger Standort muss angegeben werden"
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr "{n} Teile nach {loc} bewegt"
@@ -5908,7 +5886,7 @@ msgid "next page"
msgstr "nächste Seite"
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr "Kein Lagerort gesetzt"
@@ -6199,7 +6177,7 @@ msgstr "Neuen Lagerort erstellen"
msgid "Serialize Stock"
msgstr "Lagerbestand erfassen"
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr "Neues BestandsObjekt hinzufügen"
@@ -6697,8 +6675,8 @@ msgstr "Bauauftrag muss vor dem Berichtsdruck ausgewählt werden"
msgid "No report templates found which match selected build(s)"
msgstr "Keine Berichtvorlagen für ausgewählten Bauauftrag gefunden"
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Teile auswählen"
@@ -6902,10 +6880,15 @@ msgstr "In Lagerorten buchen"
msgid "Barcode does not match a valid location"
msgstr "Barcode entspricht keinem Lagerort"
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr "Unterbaugruppe öffnen"
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr "Verfügbar"
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr "Kaufpreisspanne"
@@ -6934,8 +6917,8 @@ msgstr "Stücklisten-Position bearbeiten"
msgid "Delete BOM Item"
msgstr "Stücklisten-Position löschen"
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr "Keine Stücklisten-Position(en) gefunden"
@@ -6948,69 +6931,119 @@ msgid "Create Build Order"
msgstr "Bauauftrag erstellen"
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#, fuzzy
+#| msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr "Teilbestand automatisch Endprodukt zuweisen"
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr "Bestand von Endpordukt zurücknehmen"
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr "Endprodukt fertigstellen"
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr "Endprodukt entfernen"
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr "Standort nicht angegeben"
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr "Neues BestandsObjekt"
+#: templates/js/translated/build.js:684
+#, fuzzy
+#| msgid "Edit location"
+msgid "Edit Allocation"
+msgstr "Lagerort bearbeiten"
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+#, fuzzy
+#| msgid "Remove allocation"
+msgid "Remove Allocation"
+msgstr "Zuordnung entfernen"
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr "benötigtes Teil"
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr "Anzahl pro"
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr "Bestand bestellen"
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+#, fuzzy
+#| msgid "Enter stock allocation quantity"
+msgid "Specify stock allocation quantity"
+msgstr "Anzahl für Bestandszuordnung eingeben"
+
+#: templates/js/translated/build.js:938
+#, fuzzy
+#| msgid "You must select at least one available stock item"
+msgid "You must select at least one part to allocate"
+msgstr "Sie müssen mindestens einen Lagerbestand auswählen"
+
+#: templates/js/translated/build.js:952
+#, fuzzy
+#| msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
+msgid "Select source location (leave blank to take from all locations)"
+msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)"
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr "Bestandszuordnung bestätigen"
+
+#: templates/js/translated/build.js:983
+#, fuzzy
+#| msgid "Allocate Stock to Build"
+msgid "Allocate Stock Items to Build Order"
+msgstr "Lagerbestand Bauauftrag zuweisen"
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock locations"
+msgstr "Keine passende BestandsObjekt gefunden"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock items"
+msgstr "Keine passende BestandsObjekt gefunden"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr "Auswählen"
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr "Bauauftrag ist überfällig"
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr "Keine Benutzerinformation"
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr "Keine Information"
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr "Keine Teile zugeordnet zu"
@@ -7165,16 +7198,22 @@ msgstr "Löschvorgang nicht erlaubt"
msgid "View operation not allowed"
msgstr "Anzeigevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+#, fuzzy
+#| msgid "No test results found"
+msgid "No results found"
+msgstr "Keine Testergebnisse gefunden"
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr "Suche"
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr "Eingabe leeren"
@@ -7294,27 +7333,33 @@ msgstr "Fehler bei Formulardaten-Anfrage"
msgid "Company ID"
msgstr "Firmen-ID"
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+#, fuzzy
+#| msgid "Stock Item"
+msgid "Stock ID"
+msgstr "BestandsObjekt"
+
+#: templates/js/translated/model_renderers.js:119
msgid "Location ID"
msgstr "Standort-ID"
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:136
msgid "Build ID"
msgstr "Bauauftrag-ID"
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr "Teil-ID"
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr "Kategorie-ID"
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr "Herstellerteil-ID"
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr "Zuliefererteil-ID"
@@ -8175,6 +8220,10 @@ msgstr "E-Mail-Einstellungen nicht konfiguriert"
msgid "Export Stock Information"
msgstr "Aktuellen Bestand exportieren"
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr "Neues BestandsObjekt"
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr "Barcode Aktionen"
@@ -8287,5 +8336,59 @@ msgstr "Berechtigungen Einträge zu ändern"
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
+#~ msgid "Select quantity of stock to allocate"
+#~ msgstr "Menge der BestandsObjekte für Zuordnung auswählen"
+
+#~ msgid "BuildItem must be unique for build, stock_item and install_into"
+#~ msgstr "Bauauftrags-Objekt muss für Bauauftrag, Lager-Objekt und installiert_in eindeutig sein"
+
+#~ msgid "Automatically Allocate Stock"
+#~ msgstr "Lagerbestand automatisch zuweisen"
+
+#~ msgid "The following stock items will be allocated to the specified build output"
+#~ msgstr "Die folgenden BestandsObjekte werden den ausgewählten Endprodukten zugeordnet"
+
+#~ msgid "No stock items found that can be automatically allocated to this build"
+#~ msgstr "Keine BestandsObjekte gefunden, die diesem Endprodukt automatisch zugewiesen werden können"
+
+#~ msgid "Stock items will have to be manually allocated"
+#~ msgstr "BestandsObjekte müssen manuell zugewiesen werden"
+
+#~ msgid "Select a stock item to allocate to the selected build output"
+#~ msgstr "BestandsObjekt zur Zuordnung zum ausgewählten Endprodukt auswählen"
+
+#~ msgid "The allocated stock will be installed into the following build output:
%(output)s"
+#~ msgstr "Der zugeordnete Bestand wird in den folgenden Endprodukten verbaut werden:
%(output)s"
+
+#~ msgid "No stock available for %(part)s"
+#~ msgstr "Kein Bestand verfügbar für %(part)s"
+
+#~ msgid "Are you sure you want to unallocate this stock?"
+#~ msgstr "Sind Sie sicher, dass sie die folgenden Bestands-Zuordnung entfernen möchten?"
+
+#~ msgid "The selected stock will be unallocated from the build output"
+#~ msgstr "Der ausgeählte Bestand wird von den Endprodukten zurückgenommen werden"
+
+#~ msgid "Auto Allocate"
+#~ msgstr "Automatisch zuweisen"
+
+#~ msgid "Allocated stock to build output"
+#~ msgstr "Bestand dem Endprodukt zuweisen"
+
+#~ msgid "Removed parts from build allocation"
+#~ msgstr "Teile von Bauzuordnung entfernt"
+
+#~ msgid "Allocate stock to build output"
+#~ msgstr "Bestand dem Endprodukt zuweisen"
+
+#~ msgid "Stock item must be selected"
+#~ msgstr "BestandsObjekt muss ausgewählt sein"
+
+#~ msgid "Edit Stock Allocation"
+#~ msgstr "Bestandszuordnung bearbeiten"
+
+#~ msgid "Updated Build Item"
+#~ msgstr "Bauobjekt aktualisiert"
+
#~ msgid "Lines can only be received against an order marked as 'Placed'"
#~ msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index f64e0942a2..e0b7a2bf89 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1181,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1218,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1238,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1271,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1316,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1332,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1341,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1349,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1357,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1365,14 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1406,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1430,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1679,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1689,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1699,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1708,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1716,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1725,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1735,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2254,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2265,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2368,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2419,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2442,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2622,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2735,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2968,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3066,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3185,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3209,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3245,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3383,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3521,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3595,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3635,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3653,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3662,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3893,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3958,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4002,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5377,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5865,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6156,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6654,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6859,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6896,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6910,101 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1038
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7159,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7292,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8177,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index b79de6ff84..71fa34b563 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: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -35,9 +35,9 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
@@ -120,7 +120,7 @@ msgid "File comment"
msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -160,7 +160,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -168,18 +168,18 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -198,7 +198,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -523,6 +523,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,18 +540,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -558,7 +561,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -569,9 +572,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -607,82 +610,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -694,43 +688,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -738,9 +731,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -748,105 +741,106 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -854,11 +848,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -866,7 +860,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -879,115 +873,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1169,28 +1182,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1220,7 +1211,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1228,7 +1219,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1248,15 +1239,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1280,38 +1272,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1321,11 +1317,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1337,7 +1333,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1346,7 +1342,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1354,7 +1350,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1362,7 +1358,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1370,6 +1366,14 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1403,11 +1407,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1432,120 +1431,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1719,7 +1680,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1729,7 +1690,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1739,7 +1700,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1748,7 +1709,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1756,7 +1717,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1765,7 +1726,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1775,7 +1736,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2294,7 +2255,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2305,7 +2266,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2408,7 +2369,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2459,16 +2420,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2482,7 +2443,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2662,7 +2623,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2775,7 +2736,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3008,14 +2969,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3110,10 +3067,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3233,6 +3186,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3253,35 +3210,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3289,7 +3246,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3423,6 +3384,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3560,7 +3522,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3634,18 +3596,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3674,7 +3636,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3691,7 +3654,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3700,7 +3663,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3931,7 +3894,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3996,7 +3959,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4040,391 +4003,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5419,44 +5378,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5907,7 +5866,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6198,7 +6157,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6696,8 +6655,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6901,10 +6860,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6933,8 +6897,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6947,69 +6911,101 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1038
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7164,16 +7160,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7293,27 +7293,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8174,6 +8178,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index bde2ed456f..cfc12fd57f 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "Ingrese la fecha"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Confirmar"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr "Comentario del archivo"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr "Selección no válida"
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr "Selección no válida"
msgid "Name"
msgstr "Nombre"
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr "Descripción (opcional)"
msgid "parent"
msgstr "padre"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Debe ser un numero valido"
@@ -522,6 +522,10 @@ msgstr "El código de barras ya está asignado a un objeto de inventario"
msgid "Barcode associated with StockItem"
msgstr "Código de barras asignado al objeto de inventario"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Número de orden de construcción"
@@ -535,18 +539,17 @@ msgstr "Fecha objetivo de pedido"
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr "Fecha objetivo"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr "Fecha límite para la finalización de la construcción. La construcció
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr "Fecha límite para la finalización de la construcción. La construcció
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr "Confirmar eliminación de salida de construcción"
msgid "Confirm unallocation of stock"
msgstr "Confirmar la desasignación de stock"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Confirmar asignación de stock"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Marcar como construcción completa"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr "Unicación"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Ubicación de las partes completadas"
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr "Estado"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "Generar estado de stock de salida"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Confirmar incompleta"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "Confirmar la finalización con una asignación de stock incompleta"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "Confirmar la terminación de construcción"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "Confirmar cancelación"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Confirmar la cancelación de construcción"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Seleccione la cantidad de stock para asignar"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr "Opción no válida para la construcción padre"
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr "Construir órden"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr "Construir órden"
msgid "Build Orders"
msgstr "Construir órdenes"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr "Referencia"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr "Parte"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "Cantidad a crear"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr "Número de objetos existentes a construir"
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "Elementos completados"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "Número de productos en stock que se han completado"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "Estado de la construcción"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "Código de estado de construcción"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr "Numero de lote"
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr "Número de lote de este producto final"
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr "Fecha de Creación"
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "Fecha límite de finalización"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr "Fecha de finalización"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "terminado por"
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr "Emitido por"
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "El usuario que emitió esta orden"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "Usuario responsable de esta orden"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr "Usuario responsable de esta orden"
msgid "External Link"
msgstr "Link externo"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Enlace a URL externa"
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr "Enlace a URL externa"
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,136 @@ msgstr "Enlace a URL externa"
msgid "Notes"
msgstr "Notas"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "Notas adicionales de construcción"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "No se ha especificado salida de construcción"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "La construcción de la salida ya está completa"
-#: build/models.py:798
+#: build/models.py:720
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:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+#, fuzzy
+#| msgid "Build Quantity"
+msgid "Build Output"
+msgstr "Cantidad a crear"
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr "Número de serie"
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1183,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1212,7 @@ msgstr "Lote"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1220,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr "Completados"
@@ -1247,15 +1240,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1273,44 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+#, fuzzy
+#| msgid "Completed items"
+msgid "Allocate selected items"
+msgstr "Elementos completados"
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1320,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1336,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1345,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1353,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1361,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1369,18 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+#, fuzzy
+#| msgid "Location of completed parts"
+msgid "Allocation Complete"
+msgstr "Ubicación de las partes completadas"
+
+#: build/templates/build/detail.html:444
+#, fuzzy
+#| msgid "Number of stock items which have been completed"
+msgid "All untracked stock items have been allocated"
+msgstr "Número de productos en stock que se han completado"
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1414,6 @@ msgstr ""
msgid "Details"
msgstr "Detalles"
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1438,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1687,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1697,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1707,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1716,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1724,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1733,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1743,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2262,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2273,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2376,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2427,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Nota"
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2450,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2630,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2743,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2976,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3074,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3193,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3217,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3253,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3391,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3529,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3603,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3643,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3661,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3670,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3901,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3966,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4010,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5385,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5873,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6164,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6662,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6867,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6904,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6918,113 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
-msgstr ""
+#, fuzzy
+#| msgid "Batch code for this build output"
+msgid "Allocate stock items to this build output"
+msgstr "Número de lote de este producto final"
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+#, fuzzy
+#| msgid "Confirm stock allocation"
+msgid "Edit Allocation"
+msgstr "Confirmar asignación de stock"
+
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+#, fuzzy
+#| msgid "Confirm stock allocation"
+msgid "Specify stock allocation quantity"
+msgstr "Confirmar asignación de stock"
+
+#: templates/js/translated/build.js:938
+#, fuzzy
+#| msgid "Select quantity of stock to allocate"
+msgid "You must select at least one part to allocate"
+msgstr "Seleccione la cantidad de stock para asignar"
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr "Confirmar asignación de stock"
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock locations"
+msgstr "No se ha encontrado ningún artículo de stock que coincida"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock items"
+msgstr "No se ha encontrado ningún artículo de stock que coincida"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7179,22 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+#, fuzzy
+#| msgid "No serial numbers found"
+msgid "No results found"
+msgstr "Numeros de serie no encontrados"
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7314,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8199,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 8e9ce90b0c..90b96c8c7e 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: French\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "Entrer la date"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Confirmer"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr "Commentaire du fichier"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr ""
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr "Description (facultative)"
msgid "parent"
msgstr "parent"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Emplacement des pièces terminées"
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr "Référence"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr "Pièce"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "Sélectionnez la pièce à construire"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,136 @@ msgstr ""
msgid "Notes"
msgstr "Notes"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
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:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+#, fuzzy
+#| msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Selected stock item not found in BOM"
msgstr "L'article en stock sélectionné n'a pas été trouvé dans la BOM pour la pièce '{p}'"
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1183,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1212,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1220,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1240,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1273,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1318,11 @@ msgstr ""
msgid "Attachments"
msgstr "Pieces jointes"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1334,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1343,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1351,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1359,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1367,16 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+#, fuzzy
+#| msgid "Location of completed parts"
+msgid "Allocation Complete"
+msgstr "Emplacement des pièces terminées"
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1410,6 @@ msgstr ""
msgid "Details"
msgstr "Détails"
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1434,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr "Disponible"
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1683,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1693,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1703,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1712,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1720,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1729,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1739,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2258,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2269,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2372,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2423,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2446,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2626,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2739,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2972,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3070,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3189,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3213,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3249,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3387,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3525,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3599,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3639,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3657,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3666,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3897,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3962,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4006,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr "IPN"
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5381,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5869,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6160,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6658,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6863,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr "Disponible"
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6900,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6914,109 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+#, fuzzy
+#| msgid "Edit User Information"
+msgid "Edit Allocation"
+msgstr "Modifier les informations utilisateur"
+
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+#, fuzzy
+#| msgid "Legacy stock tracking entry"
+msgid "Specify stock allocation quantity"
+msgstr "Ancienne entrée de suivi de stock"
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching stock locations"
+msgstr "Aucune action correspondante trouvée"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching stock items"
+msgstr "Aucune action correspondante trouvée"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7171,22 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+#, fuzzy
+#| msgid "No serial numbers found"
+msgid "No results found"
+msgstr "Aucun numéro de série trouvé"
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7306,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8191,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 13e33830c9..437ed7d841 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1181,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1218,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1238,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1271,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1316,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1332,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1341,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1349,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1357,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1365,14 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1406,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1430,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1679,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1689,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1699,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1708,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1716,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1725,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1735,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2254,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2265,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2368,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2419,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2442,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2622,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2735,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2968,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3066,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3185,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3209,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3245,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3383,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3521,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3595,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3635,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3653,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3662,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3893,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3958,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4002,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5377,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5865,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6156,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6654,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6859,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6896,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6910,101 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1038
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7159,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7292,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8177,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 6f4a84cde7..8f93b455c8 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1181,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1218,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1238,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1271,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1316,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1332,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1341,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1349,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1357,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1365,14 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1406,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1430,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1679,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1689,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1699,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1708,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1716,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1725,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1735,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2254,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2265,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2368,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2419,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2442,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2622,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2735,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2968,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3066,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3185,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3209,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3245,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3383,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3521,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3595,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3635,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3653,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3662,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3893,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3958,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4002,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5377,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5865,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6156,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6654,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6859,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6896,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6910,101 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1038
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7159,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7292,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8177,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index c11f95faf3..7bbfc0901d 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "Inserisci la data"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Conferma"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1181,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1218,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1238,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1271,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1316,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1332,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1341,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1349,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1357,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1365,14 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1406,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1430,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1679,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1689,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1699,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1708,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1716,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1725,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1735,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2254,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2265,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2368,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2419,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2442,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2622,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2735,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2968,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3066,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3185,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3209,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3245,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3383,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3521,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3595,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3635,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3653,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3662,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3893,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3958,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4002,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5377,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5865,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6156,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6654,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6859,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6896,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6910,105 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching stock locations"
+msgstr "Nessuna azione corrispondente trovata"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching stock items"
+msgstr "Nessuna azione corrispondente trovata"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7163,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7296,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8181,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index b0eb57be53..39863fe8f6 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "日付を入力する"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "確認"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr "ファイルコメント"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr "無効な選択です"
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr "無効な選択です"
msgid "Name"
msgstr "お名前"
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr "説明 (オプション)"
msgid "parent"
msgstr "親"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "完了したパーツの場所"
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr "パーツ"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr "パーツを割り当てるためにビルドする"
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1181,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1218,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1238,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1271,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1316,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1332,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1341,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1349,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1357,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1365,16 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+#, fuzzy
+#| msgid "Location of completed parts"
+msgid "Allocation Complete"
+msgstr "完了したパーツの場所"
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1408,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1432,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1681,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1691,7 @@ msgstr "テンプレート"
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1701,7 @@ msgstr "アセンブリ"
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr "コンポーネント"
@@ -1747,7 +1710,7 @@ msgstr "コンポーネント"
msgid "Parts can be used as sub-components by default"
msgstr "パーツはデフォルトでサブコンポーネントとして使用できます"
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr "購入可能"
@@ -1755,7 +1718,7 @@ msgstr "購入可能"
msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1727,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr "パーツはデフォルトで販売可能です"
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1737,7 @@ msgstr "追跡可能"
msgid "Parts are trackable by default"
msgstr "パーツはデフォルトで追跡可能です"
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2256,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2267,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2370,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2421,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2444,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2624,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2737,7 @@ msgstr "メーカー・パーツの在庫"
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2970,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3068,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3187,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3211,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3247,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3385,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3523,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3597,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3637,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3655,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3664,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3895,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3960,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4004,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5379,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5867,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6158,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6656,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6861,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6898,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6912,105 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching stock locations"
+msgstr "一致するアクションが見つかりませんでした"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching action found"
+msgid "No matching stock items"
+msgstr "一致するアクションが見つかりませんでした"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7165,22 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+#, fuzzy
+#| msgid "No serial numbers found"
+msgid "No results found"
+msgstr "シリアル番号が見つかりません"
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7300,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8185,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 2f8f79174f..9d66800b0f 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1181,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1218,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1238,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1271,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1316,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1332,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1341,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1349,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1357,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1365,14 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1406,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1430,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1679,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1689,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1699,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1708,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1716,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1725,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1735,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2254,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2265,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2368,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2419,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2442,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2622,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2735,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2968,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3066,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3185,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3209,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3245,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3383,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3521,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3595,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3635,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3653,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3662,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3893,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3958,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4002,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5377,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5865,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6156,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6654,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6859,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6896,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6910,101 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1038
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7159,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7292,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8177,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index e75ce5edab..43ce0511d1 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "Voer datum in"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Bevestigen"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr "Bijlage opmerking"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr "Ongeldige keuze"
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr "Ongeldige keuze"
msgid "Name"
msgstr "Naam"
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr "Omschrijving (optioneel)"
msgid "parent"
msgstr "overkoepelend"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
@@ -522,6 +522,10 @@ msgstr "Barcode komt al overeen met StockItem object"
msgid "Barcode associated with StockItem"
msgstr "Barcode gekoppeld aan StockItem"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Bouwopdracht referentie"
@@ -535,18 +539,17 @@ msgstr "Order streefdatum"
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr "Streefdatum"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr "Bevestig verwijdering van build-output"
msgid "Confirm unallocation of stock"
msgstr "Bevestig het ongedaan maken van de toewijzing van voorraad"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Bevestig de voorraadtoewijzing"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Markeer build als voltooid"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr "Locatie"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Locatie van voltooide onderdelen"
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr "Status"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "Build output voorraad status"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Bevestig onvolledigheid"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "Bevestig voltooiing met onvolledige voorraadtoewijzing"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "Bevestig build voltooiing"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "Annuleren bevestigen"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Bevestig annulering van de build"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Selecteer de te toewijzen hoeveelheid voorraad"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr "Ongeldige keuze voor bovenliggende build"
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr "Bouwopdracht"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr "Bouwopdracht"
msgid "Build Orders"
msgstr "Bouwopdrachten"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "Bouwopdracht referentie"
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr "Referentie"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr "Korte beschrijving van de build"
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Bovenliggende bouw"
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr "BuildOrder waaraan deze build is toegewezen"
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
msgid "Part"
msgstr "Onderdeel"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "Selecteer onderdeel om te bouwen"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr "Verkoop Order Referentie"
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr "Verkooporder waaraan deze build is toegewezen"
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr "Bron Locatie"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Selecteer de locatie waar de voorraad van de build vandaan moet komen (laat leeg om vanaf elke standaard locatie te nemen)"
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr "Bestemmings Locatie"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr "Selecteer locatie waar de voltooide items zullen worden opgeslagen"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "Bouwkwaliteit"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "Voltooide voorraadartikelen"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "Aantal voorraadartikelen die zijn voltooid"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "Bouwstatus"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "Bouwstatuscode"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr "Aanmaakdatum"
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "Verwachte voltooiingsdatum"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr "Voltooiingsdatum"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "voltooid door"
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "Gebruiker die bouwopdracht heeft gegeven"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr "Verantwoordelijke"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht"
msgid "External Link"
msgstr "Externe Link"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Link naar externe URL"
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr "Link naar externe URL"
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,138 @@ msgstr "Link naar externe URL"
msgid "Notes"
msgstr "Opmerkingen"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "Opmerkingen over de bouw"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "Geen bouwuitvoer opgegeven"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "Bouwuitvoer is al voltooid"
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr "Bouwuitvoer komt niet overeen met bouwopdracht"
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+#, fuzzy
+#| msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Selected stock item not found in BOM"
msgstr "Geselecteerde voorraadartikel niet gevonden in stuklijst voor onderdeel '{p}'"
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr "Product"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr "Bouw om onderdelen toe te wijzen"
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr "Voorraadartikel"
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr "Bron voorraadartikel"
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr "Voorraad hoeveelheid te alloceren aan bouw"
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr "Installeren in"
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr "Bestemming voorraadartikel"
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+#, fuzzy
+#| msgid "Build Quantity"
+msgid "Build Output"
+msgstr "Bouwkwaliteit"
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr "Serienummer"
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr "Automatisch voorraad toewijzen"
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr "De volgende voorraadartikelen zullen worden toegewezen aan het opgegeven product"
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr "Geen voorraadartikelen gevonden die automatisch aan dit product toegewezen kunnen worden"
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr "Voorraad items zullen handmatig moeten worden toegewezen"
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1185,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr "Voorraadbron"
@@ -1219,7 +1214,7 @@ msgstr "Batch"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr "Gecreëerd"
@@ -1227,7 +1222,7 @@ msgstr "Gecreëerd"
msgid "No target date set"
msgstr "Geen doeldatum ingesteld"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1242,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
-msgstr "Automatisch toewijzen"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
+msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr "Niet toegewezen voorraad"
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr "Niet toegewezen voorraad"
@@ -1279,38 +1275,44 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+#, fuzzy
+#| msgid "Completed items"
+msgid "Allocate selected items"
+msgstr "Voltooide voorraadartikelen"
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1322,11 @@ msgstr ""
msgid "Attachments"
msgstr "Bijlagen"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr "Bouw notities"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1338,7 @@ msgstr "Bouw notities"
msgid "Edit Notes"
msgstr "Notities Bewerken"
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1347,7 @@ msgstr "Notities Bewerken"
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1355,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1363,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1371,18 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+#, fuzzy
+#| msgid "Location of completed parts"
+msgid "Allocation Complete"
+msgstr "Locatie van voltooide onderdelen"
+
+#: build/templates/build/detail.html:444
+#, fuzzy
+#| msgid "Stock items will have to be manually allocated"
+msgid "All untracked stock items have been allocated"
+msgstr "Voorraad items zullen handmatig moeten worden toegewezen"
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1416,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1440,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1689,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1699,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1709,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1718,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1726,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1735,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1745,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2264,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2275,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2378,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2429,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2452,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2632,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2745,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2978,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3076,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3195,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3219,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3255,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3393,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3531,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3605,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3645,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3663,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3672,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3903,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr "Standaard locatie"
@@ -3995,7 +3968,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4012,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr "Standaard locatie voor onderdelen in deze categorie"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5387,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5875,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr "Geen Locatie ingesteld"
@@ -6197,7 +6166,7 @@ msgstr "Maak nieuwe voorraadlocatie"
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6664,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6869,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6906,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6920,117 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
-msgstr ""
+#, fuzzy
+#| msgid "The following stock items will be allocated to the specified build output"
+msgid "Allocate stock items to this build output"
+msgstr "De volgende voorraadartikelen zullen worden toegewezen aan het opgegeven product"
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
+#: templates/js/translated/build.js:684
+#, fuzzy
+#| msgid "Edit location"
+msgid "Edit Allocation"
+msgstr "Bewerk locatie"
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+#, fuzzy
+#| msgid "Delete location"
+msgid "Remove Allocation"
+msgstr "Verwijder locatie"
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+#, fuzzy
+#| msgid "Specify a valid location"
+msgid "Specify stock allocation quantity"
+msgstr "Specificeer een geldige locatie"
+
+#: templates/js/translated/build.js:938
+#, fuzzy
+#| msgid "Select quantity of stock to allocate"
+msgid "You must select at least one part to allocate"
+msgstr "Selecteer de te toewijzen hoeveelheid voorraad"
+
+#: templates/js/translated/build.js:952
+#, fuzzy
+#| msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
+msgid "Select source location (leave blank to take from all locations)"
+msgstr "Selecteer de locatie waar de voorraad van de build vandaan moet komen (laat leeg om vanaf elke standaard locatie te nemen)"
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr "Bevestig de voorraadtoewijzing"
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock locations"
+msgstr "Geen overeenkomend voorraaditem gevonden"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock items"
+msgstr "Geen overeenkomend voorraaditem gevonden"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7185,22 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+#, fuzzy
+#| msgid "No serial numbers found"
+msgid "No results found"
+msgstr "Geen serienummers gevonden"
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7320,33 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+#, fuzzy
+#| msgid "Stock Item"
+msgid "Stock ID"
+msgstr "Voorraadartikel"
+
+#: templates/js/translated/model_renderers.js:119
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:136
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8207,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8284,3 +8322,12 @@ msgstr ""
#: users/models.py:194
msgid "Permission to delete items"
msgstr ""
+
+#~ msgid "Automatically Allocate Stock"
+#~ msgstr "Automatisch voorraad toewijzen"
+
+#~ msgid "No stock items found that can be automatically allocated to this build"
+#~ msgstr "Geen voorraadartikelen gevonden die automatisch aan dit product toegewezen kunnen worden"
+
+#~ msgid "Auto Allocate"
+#~ msgstr "Automatisch toewijzen"
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 779fd0fe26..3f4b952d37 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "Oppgi dato"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Bekreft"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr "Kommentar til fil"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr "Ugyldig valg"
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr "Ugyldig valg"
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr "Beskrivelse (valgfritt)"
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Nummer må være gyldig"
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1181,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1218,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1238,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1271,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1316,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1332,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1341,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1349,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1357,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1365,14 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1406,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1430,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1679,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1689,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1699,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1708,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1716,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1725,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1735,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2254,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2265,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2368,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2419,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2442,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2622,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2735,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2968,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3066,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3185,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3209,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3245,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3383,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3521,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3595,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3635,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3653,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3662,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3893,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3958,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4002,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5377,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5865,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6156,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6654,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6859,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6896,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6910,105 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock locations"
+msgstr "Ingen samsvarende lagervare funnet"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock items"
+msgstr "Ingen samsvarende lagervare funnet"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7163,22 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+#, fuzzy
+#| msgid "No serial numbers found"
+msgid "No results found"
+msgstr "Ingen serienummer funnet"
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7298,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8183,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 2694387f38..f6093ca08f 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "Wprowadź dane"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Potwierdź"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr "Komentarz pliku"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr "Błędny wybór"
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr "Błędny wybór"
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr "Opis (opcjonalny)"
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Numer Zlecenia Budowy"
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr "Data docelowa"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr "Potwierdź brak alokacji zapasów"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Potwierdź przydział zapasów"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Oznacz budowę jako ukończoną"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr "Lokalizacja"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Lokalizacja ukończonych części"
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr "Status"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Potwierdź nieukończone"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "Na pewno anulować?"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Wybierz ilość zapasów do rezerwacji"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr "Zlecenie Budowy"
msgid "Build Orders"
msgstr "Zlecenia budowy"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr "Referencja"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr "Krótki opis budowy"
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Budowa nadrzędna"
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr "Zamówienie budowy, do którego budowa jest przypisana"
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
msgid "Part"
msgstr "Część"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "Wybierz część do budowy"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr "Odwołanie do zamówienia sprzedaży"
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr "Lokalizacja źródła"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)"
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr "Lokalizacja docelowa"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "Ilość do stworzenia"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr "Ilość przedmiotów do zbudowania"
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "Ukończone elementy"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "Ilość produktów magazynowych które zostały ukończone"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "Status budowania"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr "Kod partii"
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr "Data zakończenia"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "zrealizowane przez"
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr "Wydany przez"
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr "Odpowiedzialny"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr "Link do zewnętrznego adresu URL"
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,139 @@ msgstr "Link do zewnętrznego adresu URL"
msgid "Notes"
msgstr "Uwagi"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "Dodatkowe notatki do budowy"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "Budowanie wyjścia jest już ukończone"
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
-#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+#: build/models.py:1111
+#, fuzzy, python-brace-format
+#| msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "Przydzielona ilość ({n}) nie może przekraczać dostępnej ilości ({q})"
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr "Budowa"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr "Ilość musi być większa niż zero"
+
+#: build/serializers.py:180
+#, fuzzy
+#| msgid "Create Build Output"
+msgid "Build Output"
+msgstr "Utwórz zlecenie budowy"
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+#, fuzzy
+#| msgid "Allocation quantity must be greater than zero"
+msgid "Allocation items must be provided"
+msgstr "Alokowana ilość musi być większa niż zero"
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr "Numer Seryjny"
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr "Przydziel automatycznie zapasy"
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1186,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr "Brak zapasów dla %(part)s"
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr "Czy na pewno chcesz anulować przydział tego zapasu?"
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr "Źródło magazynu"
@@ -1219,7 +1215,7 @@ msgstr "Partia"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr "Utworzony"
@@ -1227,7 +1223,7 @@ msgstr "Utworzony"
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr "Zakończone"
@@ -1247,15 +1243,16 @@ msgstr "Przydziel zapasy do budowy"
msgid "Allocate stock to build"
msgstr "Przydziel zapasy do budowy"
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
-msgstr "Automatyczne przypisywanie"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
+msgstr "Przydziel zapasy"
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr "Cofnij przydział zapasów"
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr "Cofnij przydział zapasów"
@@ -1279,38 +1276,44 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+#, fuzzy
+#| msgid "Completed items"
+msgid "Allocate selected items"
+msgstr "Ukończone elementy"
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr "Utwórz nowe wyjście"
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1323,11 @@ msgstr ""
msgid "Attachments"
msgstr "Załączniki"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr "Notatki tworzenia"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1339,7 @@ msgstr "Notatki tworzenia"
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1348,7 @@ msgstr ""
msgid "Add Attachment"
msgstr "Dodaj załącznik"
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1356,7 @@ msgstr "Dodaj załącznik"
msgid "Edit Attachment"
msgstr "Edytuj załącznik"
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1364,7 @@ msgstr "Edytuj załącznik"
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1372,18 @@ msgstr ""
msgid "Delete Attachment"
msgstr "Usuń załącznik"
+#: build/templates/build/detail.html:443
+#, fuzzy
+#| msgid "Location of completed parts"
+msgid "Allocation Complete"
+msgstr "Lokalizacja ukończonych części"
+
+#: build/templates/build/detail.html:444
+#, fuzzy
+#| msgid "Number of stock items which have been completed"
+msgid "All untracked stock items have been allocated"
+msgstr "Ilość produktów magazynowych które zostały ukończone"
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1417,6 @@ msgstr "Szczegóły zlecenia budowy"
msgid "Details"
msgstr "Szczegóły"
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr "Przydziel zapasy"
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr "Tworzenie zostało przerwane"
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr "Utwórz zlecenie budowy"
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr "Dostępne"
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1690,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1700,7 @@ msgstr "Szablon"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1710,7 @@ msgstr "Złożenie"
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr "Komponent"
@@ -1747,7 +1719,7 @@ msgstr "Komponent"
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr "Możliwość zakupu"
@@ -1755,7 +1727,7 @@ msgstr "Możliwość zakupu"
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr "Możliwość sprzedaży"
@@ -1764,7 +1736,7 @@ msgstr "Możliwość sprzedaży"
msgid "Parts are salable by default"
msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1746,7 @@ msgstr "Możliwość śledzenia"
msgid "Parts are trackable by default"
msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2265,7 @@ msgid "Point of contact"
msgstr "Punkt kontaktowy"
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2276,7 @@ msgstr "Łącze"
msgid "Link to external company information"
msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr "Obraz"
@@ -2407,7 +2379,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr "Jednostki"
@@ -2458,16 +2430,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2453,7 @@ msgstr "Opakowanie"
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr "wielokrotność"
@@ -2661,7 +2633,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2746,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2979,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr "Złóż zamówienie"
@@ -3109,10 +3077,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr "Ilość musi być większa niż zero"
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3196,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3220,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3256,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3394,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3532,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3606,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr "Akcje"
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3646,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr "Przydzielono"
@@ -3690,7 +3664,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3673,7 @@ msgid "Purchase stock"
msgstr "Cena zakupu"
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3904,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr "Domyślna lokalizacja"
@@ -3995,7 +3969,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr "Część nadrzędna"
@@ -4039,391 +4013,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr "Domyślne słowa kluczowe"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr "Nazwa części"
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr "Wariant"
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr "Opis części"
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr "IPN"
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr "Wersja"
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr "Czy ta część może być zbudowana z innych części?"
-#: part/models.py:812
+#: part/models.py:813
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:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr "Aktywny"
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr "Czy ta część jest aktywna?"
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr "Dane"
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5388,44 @@ msgstr "Zaliczone"
msgid "Fail"
msgstr "Niezaliczone"
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr "Nieprawidłowa ilość"
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr "Ilość musi być większa niż zero"
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5876,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr "Lokacje nie są ustawione"
@@ -6197,7 +6167,7 @@ msgstr "Utwórz nową lokalizację magazynową"
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6665,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6870,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr "Dostępne"
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6907,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6921,119 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
-msgstr ""
+#, fuzzy
+#| msgid "Allocate stock to build"
+msgid "Allocate stock items to this build output"
+msgstr "Przydziel zapasy do budowy"
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
+#: templates/js/translated/build.js:684
+#, fuzzy
+#| msgid "Edit location"
+msgid "Edit Allocation"
+msgstr "Edytuj lokację"
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+#, fuzzy
+#| msgid "Remove line"
+msgid "Remove Allocation"
+msgstr "Usuń linie"
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr "Ilość za"
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+#, fuzzy
+#| msgid "Edit Allocation Quantity"
+msgid "Specify stock allocation quantity"
+msgstr "Edytuj zarezerwowaną ilość"
+
+#: templates/js/translated/build.js:938
+#, fuzzy
+#| msgid "Select quantity of stock to allocate"
+msgid "You must select at least one part to allocate"
+msgstr "Wybierz ilość zapasów do rezerwacji"
+
+#: templates/js/translated/build.js:952
+#, fuzzy
+#| msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
+msgid "Select source location (leave blank to take from all locations)"
+msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)"
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr "Potwierdź przydział zapasów"
+
+#: templates/js/translated/build.js:983
+#, fuzzy
+#| msgid "Allocate Stock to Build"
+msgid "Allocate Stock Items to Build Order"
+msgstr "Przydziel zapasy do budowy"
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock locations"
+msgstr "Nie znaleziono pasujących stanów magazynowych"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock items"
+msgstr "Nie znaleziono pasujących stanów magazynowych"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7188,22 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+#, fuzzy
+#| msgid "No serial numbers found"
+msgid "No results found"
+msgstr "Nie znaleziono numerów seryjnych"
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7323,33 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+#, fuzzy
+#| msgid "Stock Item"
+msgid "Stock ID"
+msgstr "Element magazynowy"
+
+#: templates/js/translated/model_renderers.js:119
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:136
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8210,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8284,3 +8325,15 @@ msgstr "Uprawnienie do edycji przedmiotów"
#: users/models.py:194
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
+
+#~ msgid "Automatically Allocate Stock"
+#~ msgstr "Przydziel automatycznie zapasy"
+
+#~ msgid "No stock available for %(part)s"
+#~ msgstr "Brak zapasów dla %(part)s"
+
+#~ msgid "Are you sure you want to unallocate this stock?"
+#~ msgstr "Czy na pewno chcesz anulować przydział tego zapasu?"
+
+#~ msgid "Auto Allocate"
+#~ msgstr "Automatyczne przypisywanie"
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 7338e12a33..6511d78cd5 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "Введите дату"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Подтвердить"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr "Комментарий к файлу"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr ""
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr "Описание (необязательно)"
msgid "parent"
msgstr "родитель"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -522,6 +522,10 @@ msgstr "Хэш штрих-кода уже соответствует объек
msgid "Barcode associated with StockItem"
msgstr "Штрих-код, связанный с инвентарем"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Ссылка на заказ"
@@ -535,18 +539,17 @@ msgstr "Срок выполнения заказа"
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr "Целевая дата"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr "Подтвердите удаление результатов сбор
msgid "Confirm unallocation of stock"
msgstr "Подтвердите снятие со склада"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Подтвердите выделение запасов"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Пометить сборку как завершенную"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr "Расположение"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Расположение укомплектованных частей"
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr "Статус"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "Создать статус склада вывода"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Подтвердите незавершенность"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "Подтвердите завершение с неполным выделением запасов"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "Подтвердите завершение сборки"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "Подтвердите отмену"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Подтвердите отмену сборки"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Выберите количество запасов для распределения"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr "Порядок сборки"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr "Порядок сборки"
msgid "Build Orders"
msgstr "Порядок сборки"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr "Детали"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "выполнено"
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr "Ответственный"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr "Внешняя ссылка"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr "Ссылка на внешний URL"
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,136 @@ msgstr "Ссылка на внешний URL"
msgid "Notes"
msgstr "Заметки"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr "Сборка"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+#, fuzzy
+#| msgid "Build Order"
+msgid "Build Output"
+msgstr "Порядок сборки"
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1183,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1212,7 @@ msgstr "Партия"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr "Создано"
@@ -1227,7 +1220,7 @@ msgstr "Создано"
msgid "No target date set"
msgstr "Нет конечной даты"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1240,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1273,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1318,11 @@ msgstr ""
msgid "Attachments"
msgstr "Приложения"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr "Заметки сборки"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1334,7 @@ msgstr "Заметки сборки"
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1343,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1351,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1359,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1367,16 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+#, fuzzy
+#| msgid "Location of completed parts"
+msgid "Allocation Complete"
+msgstr "Расположение укомплектованных частей"
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1410,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1434,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1683,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1693,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1703,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1712,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1720,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1729,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1739,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2258,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2269,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2372,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2423,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2446,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2626,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2739,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2972,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3070,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3189,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3213,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3249,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3387,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3525,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3599,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3639,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3657,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3666,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3897,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3962,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4006,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5381,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5869,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6160,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6658,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6863,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6900,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6914,111 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+#, fuzzy
+#| msgid "Confirm stock allocation"
+msgid "Edit Allocation"
+msgstr "Подтвердите выделение запасов"
+
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+#, fuzzy
+#| msgid "Confirm stock allocation"
+msgid "Specify stock allocation quantity"
+msgstr "Подтвердите выделение запасов"
+
+#: templates/js/translated/build.js:938
+#, fuzzy
+#| msgid "Select quantity of stock to allocate"
+msgid "You must select at least one part to allocate"
+msgstr "Выберите количество запасов для распределения"
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr "Подтвердите выделение запасов"
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock locations"
+msgstr "Не найдено совпадающих элементов инвентаря"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock items"
+msgstr "Не найдено совпадающих элементов инвентаря"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7173,22 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+#, fuzzy
+#| msgid "No serial numbers found"
+msgid "No results found"
+msgstr "Серийных номеров не найдено"
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7308,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8193,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 5db45247ed..4d347e4eda 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1181,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1218,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1238,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1271,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1316,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1332,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1341,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1349,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1357,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1365,14 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1406,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1430,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1679,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1689,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1699,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1708,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1716,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1725,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1735,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2254,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2265,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2368,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2419,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2442,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2622,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2735,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2968,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3066,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3185,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3209,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3245,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3383,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3521,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3595,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3635,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3653,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3662,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3893,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3958,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4002,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5377,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5865,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6156,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6654,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6859,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6896,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6910,101 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1038
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7159,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7292,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8177,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 63235677ad..157ca7cf72 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1181,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1218,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1238,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1271,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1316,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1332,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1341,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1349,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1357,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1365,14 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1406,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1430,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1679,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1689,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1699,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1708,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1716,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1725,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1735,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2254,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2265,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2368,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2419,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2442,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2622,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2735,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2968,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3066,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3185,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3209,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3245,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3383,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3521,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3595,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3635,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3653,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3662,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3893,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3958,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4002,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5377,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5865,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6156,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6654,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6859,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6896,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6910,101 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1038
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7159,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7292,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8177,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 7737fff698..18fb801dce 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "Tarih giriniz"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Onay"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr "Dosya yorumu"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr "Geçersiz seçim"
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr "Geçersiz seçim"
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr "Açıklama (isteğe bağlı)"
msgid "parent"
msgstr "üst"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
@@ -522,6 +522,10 @@ msgstr "Barkod karması (hash) zaten stok kalemi nesnesiyle eşleşiyor"
msgid "Barcode associated with StockItem"
msgstr "Barkod başka bir stok kalemiyle ilişkili"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Yapım İşi Emri referansı"
@@ -535,18 +539,17 @@ msgstr "Emir hedef tarihi"
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr "Hedeflenen tarih"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr "Yapım işi çıktısının silinmesini onaylayın"
msgid "Confirm unallocation of stock"
msgstr "Stok tahsisinin iptalini onayla"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Stok tahsisini onayla"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Yapım işini tamamlandı olarak işaretle"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr "Konum"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Tamamlanmış parçaların konumu"
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr "Durum"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "Yapım işi çıktısı stok durumu"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Eksik olarak onayla"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "Eksik parça tahsisi ile tamamlamayı onayla"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "Yapım işinin tamamlandığını onaylayın"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "İptali Onayla"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Yapım işi iptalini onayla"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Tahsis edilecek stok miktarını seçiniz"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr "Yapım İşi Emri"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr "Yapım İşi Emri"
msgid "Build Orders"
msgstr "Yapım İşi Emirleri"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr "Referans"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr "Yapım işinin kısa açıklaması"
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Üst Yapım İşi"
-#: build/models.py:200
+#: build/models.py:202
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:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
msgid "Part"
msgstr "Parça"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "Yapım işi için parça seçin"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr "Satış Emri Referansı"
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr "Kaynak Konum"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)"
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr "Hedef Konum"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "Yapım İşi Miktarı"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr "Yapım işi stok kalemlerinin sayısı"
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "Tamamlanmış ögeler"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "Tamamlanan stok kalemlerinin sayısı"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "Yapım İşi Durumu"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr "Sıra numarası"
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr "Tamamlama tarihi"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "tamamlayan"
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr "Veren"
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr "Sorumlu"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr "Harici URL'ye bağlantı"
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,145 @@ msgstr "Harici URL'ye bağlantı"
msgid "Notes"
msgstr "Notlar"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "Yapım işi için ekstra notlar"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "Yapım işi çıktısı belirtilmedi"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "Yapım işi çıktısı zaten tamamlanmış"
-#: build/models.py:798
+#: build/models.py:720
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:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr "Yapım işi ögesi; yapım işi, stok kalemi ve kurulacak yer için benzersiz olmalıdır"
-
-#: build/models.py:1233
+#: build/models.py:1102
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:1237
-#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+#: build/models.py:1111
+#, fuzzy, python-brace-format
+#| msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "Tahsis edilecek miktar ({n}) mevcut miktarı ({q}) geçmemeli"
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+#, fuzzy
+#| msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Selected stock item not found in BOM"
msgstr "{p} parçasının malzeme listesindeki seçili stok kalemi bulunamadı"
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr "Yapım İşi"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr "Yapım işi için tahsis edilen parçalar"
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr "Yapım işi için tahsis edilen stok miktarı"
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr "Kurulduğu yer"
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+#, fuzzy
+#| msgid "Item must be currently in stock"
+msgid "Item must be in stock"
+msgstr "Öge stokta bulunmalı"
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+#, fuzzy
+#| msgid "Build Outputs"
+msgid "Build Output"
+msgstr "Yapım İşi Çıktıları"
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+#, fuzzy
+#| msgid "Build output must be specified"
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr "Yapım işi çıktısı belirtilmeli"
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+#, fuzzy
+#| msgid "Allocation quantity must be greater than zero"
+msgid "Allocation items must be provided"
+msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr "Seri Numara"
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr "Stoku Otomatik Olarak Tahsis Et"
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr "Aşağıdaki stok kalemleri, belirtilen yapım işi çıktısı için tahsis edilecek"
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr "Bu yapım işi için otomatik tahsis edilecek stok kalemleri bulunamadı"
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr "Stok kalemleri manuel olarak tahsis edilecek"
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1192,6 @@ msgstr "takip edilebilir parçalar tamamen tahsis edilemedi"
msgid "The following items will be created"
msgstr "Aşağıdaki ögeler oluşturulacak"
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr "Seçili yapım işi emri için tahsis edilecek bir stok kalemi seçiniz"
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr "%(part)s için mevcut stok yok"
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr "Bu stokun tahsisinin iptal etmek istediğinizden emin misiniz?"
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr "Bu yapım işi için seçili stok tahsisi iptal edilecek"
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr "Stok Kaynağı"
@@ -1219,7 +1221,7 @@ msgstr "Toplu"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr "Oluşturuldu"
@@ -1227,7 +1229,7 @@ msgstr "Oluşturuldu"
msgid "No target date set"
msgstr "Hedef tarih ayarlanmadı"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr "Tamamlandı"
@@ -1247,15 +1249,16 @@ msgstr "Yapım İşi için Stok Tahsis Et"
msgid "Allocate stock to build"
msgstr "Yapım işi için stok tahsis et"
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
-msgstr "Otomatik Tahsis Et"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
+msgstr "Stok Tahsis Et"
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr "Stok tahsisini kaldır"
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr "Stok Tahsisini Kaldır"
@@ -1279,38 +1282,44 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edilemedi"
#: build/templates/build/detail.html:197
+#, fuzzy
+#| msgid "Allocate serial numbers"
+msgid "Allocate selected items"
+msgstr "Seri numaralarını tahsis et"
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Bu yapım işi emri, herhangi bir takip edilmeyen malzeme listesi öğesine sahip değil"
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr "Tamamlanmamış Yapım İşi Çıktıları"
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr "Yeni yapım işi çıktısı oluştur"
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr "Yeni Çıktı Oluştur"
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr "Yeni bir yapım işi çıktısı oluştur"
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr "Tamamlanmamış yapım işi çıktısı kalmadı."
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr "Yukarıdaki düğmeyi kullanarak yeni bir yapım işi çıktısı oluştur"
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr "Tamamlanmış Yapım İşi Çıktıları"
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1329,11 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları"
msgid "Attachments"
msgstr "Ekler"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr "Yapım İşi Notları"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1345,7 @@ msgstr "Yapım İşi Notları"
msgid "Edit Notes"
msgstr "Notları Düzenle"
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1354,7 @@ msgstr "Notları Düzenle"
msgid "Add Attachment"
msgstr "Dosya Ekle"
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1362,7 @@ msgstr "Dosya Ekle"
msgid "Edit Attachment"
msgstr "Ek Düzenle"
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1370,7 @@ msgstr "Ek Düzenle"
msgid "Confirm Delete Operation"
msgstr "Silme İşlemini Onayla"
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1378,18 @@ msgstr "Silme İşlemini Onayla"
msgid "Delete Attachment"
msgstr "Eki Sil"
+#: build/templates/build/detail.html:443
+#, fuzzy
+#| msgid "Stock allocation is incomplete"
+msgid "Allocation Complete"
+msgstr "Stok tahsisi tamamlanmamış"
+
+#: build/templates/build/detail.html:444
+#, fuzzy
+#| msgid "tracked parts have not been fully allocated"
+msgid "All untracked stock items have been allocated"
+msgstr "takip edilebilir parçalar tamamen tahsis edilemedi"
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr "Yapım işi çıktısına tahsis edilen stok miktarını değiştir"
@@ -1402,11 +1423,6 @@ msgstr "Yapım İşi Emri Detayları"
msgid "Details"
msgstr "Detaylar"
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr "Stok Tahsis Et"
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr "Yapım İşi Çıktıları"
@@ -1431,120 +1447,82 @@ msgstr "Tüm eksik stok tahsisleri yapım işinden kaldırılacak"
msgid "Build was cancelled"
msgstr "Yapım işi iptal edildi"
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr "Yapım işi çıktısına stok tahsis edildi"
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr "Yapım İşi Çıktısı Oluştur"
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr "Maksimum çıktı miktarı "
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr "Seri numaraları takip edilebilir yapım işi çıktıları için gerekli"
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr "Yapım İşi Çıktısı Sil"
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr "Yapım işi stoku tahsisinin iptalini onayla"
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr "Onay kutusunu işaretleyin"
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr "Yapım işi çıktısı yapım işi ile eşleşmiyor"
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr "Yapım işi çıktısı belirtilmeli"
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr "Yapım işi çıktısı silindi"
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr "Tamamlanmış Yapım İşi Emri"
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr "Yapım işi emri tamamlanamadı - eksik çıktılar kaldı"
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr "Tamamlanmış yapım işi emri"
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr "Tamamlanmış Yapım İşi Çıktısı"
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr "Geçersiz stok durum değeri seçildi"
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr "Tamamlanacak miktar yapım işi çıktı miktarını aşamaz"
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr "Eksik yapım işinin tamamlandığını onaylayın"
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr "Yapım işi çıktısı tamamlandı"
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr "Yapım İşi Emrini Sil"
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr "Yapım işinden tahsis edilen parçalar çıkarıldı"
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr "Yapım işi çıktısına stok tahsis edildi"
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr "Öge stokta bulunmalı"
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr "Stok kalemi fazladan tahsis edilmiş"
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr "Mevcut"
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr "Stok kalemi seçilmeli"
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr "Stok Tahsisini Düzenle"
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr "Yapım İşi Ögesini Güncelle"
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr "Desteklenmeyen dosya formatı: {ext.upper()}"
@@ -1718,7 +1696,7 @@ msgstr "Kategori Paremetre Sablonu Kopyala"
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1706,7 @@ msgstr "Şablon"
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1716,7 @@ msgstr "Montaj"
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:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr "Bileşen"
@@ -1747,7 +1725,7 @@ msgstr "Bileşen"
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:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr "Satın Alınabilir"
@@ -1755,7 +1733,7 @@ msgstr "Satın Alınabilir"
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr "Satılabilir"
@@ -1764,7 +1742,7 @@ msgstr "Satılabilir"
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1752,7 @@ msgstr "Takip Edilebilir"
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2271,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2282,7 @@ msgstr "Bağlantı"
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr "Resim"
@@ -2407,7 +2385,7 @@ msgstr "Değer"
msgid "Parameter value"
msgstr "Parametre değeri"
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2436,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Not"
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr "temel maliyet"
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2459,7 @@ msgstr "Paketleme"
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr "çoklu"
@@ -2661,7 +2639,7 @@ msgstr "Yeni Satış Emri"
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr "Atanan Stok"
@@ -2774,7 +2752,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2985,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr "Sipariş ver"
@@ -3109,10 +3083,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3202,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr "Stok kalemi fazladan tahsis edilmiş"
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
@@ -3252,35 +3226,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3262,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3400,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3538,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3612,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr "İşlemler"
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr "Stok tahsisini düzenle"
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr "Stok tahsisini sil"
@@ -3673,7 +3652,8 @@ msgid "Total price"
msgstr "Toplam fiyat"
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3670,7 @@ msgid "Allocate serial numbers"
msgstr "Seri numaralarını tahsis et"
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3679,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3910,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr "Varsayılan Konum"
@@ -3995,7 +3975,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil edin"
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4019,387 @@ msgstr "Parametre şablonunu tüm kategorilere ekle"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr "Bu kategori içindeki parçalar için varsayılan konum"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr "Parça Kategorileri"
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr "Sonraki kullanılabilir seri numaraları"
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr "Sonraki müsait seri numarası"
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr "En son seri numarası"
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr "Parça adı"
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr "Şablon Mu"
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr "Bu parça bir şablon parçası mı?"
-#: part/models.py:675
+#: part/models.py:676
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:676
+#: part/models.py:677
msgid "Variant Of"
msgstr "Çeşidi"
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr "Parça açıklaması"
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr "Anahtar kelimeler"
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr "DPN"
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr "Revizyon"
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr "Varsayılan Tedarikçi"
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr "Varsayılan tedarikçi parçası"
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr "Minimum Stok"
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr "Bu parça diğer parçalardan yapılabilir mi?"
-#: part/models.py:812
+#: part/models.py:813
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:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr "Aktif"
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr "Bu parça aktif mi?"
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr "Oluşturan Kullanıcı"
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
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:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
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:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:2381
+#: part/models.py:2402
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:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5394,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr "{n} öge için stok güncellendi"
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5882,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr "Konum ayarlanmadı"
@@ -6197,7 +6173,7 @@ msgstr "Yeni Stok konumu oluştur"
msgid "Serialize Stock"
msgstr "Stoku Seri Numarala"
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6671,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr "Seçili yapım işleri için rapor şablonu bulunamadı"
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Parçaları Seçin"
@@ -6900,10 +6876,15 @@ msgstr "Konuma Kaydet"
msgid "Barcode does not match a valid location"
msgstr "Barkod geçerli bir konumla eşleşmiyor"
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr "Mevcut"
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6913,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6927,119 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
-msgstr ""
+#, fuzzy
+#| msgid "Allocate stock to build output"
+msgid "Allocate stock items to this build output"
+msgstr "Yapım işi çıktısına stok tahsis edildi"
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
+#: templates/js/translated/build.js:684
+#, fuzzy
+#| msgid "Edit location"
+msgid "Edit Allocation"
+msgstr "Konumu düzenle"
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+#, fuzzy
+#| msgid "Remove allocation"
+msgid "Remove Allocation"
+msgstr "Tahsisi Sil"
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr "Gerekli Parça"
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+#, fuzzy
+#| msgid "Enter stock allocation quantity"
+msgid "Specify stock allocation quantity"
+msgstr "Stok tahsis miktarını girin"
+
+#: templates/js/translated/build.js:938
+#, fuzzy
+#| msgid "Select quantity of stock to allocate"
+msgid "You must select at least one part to allocate"
+msgstr "Tahsis edilecek stok miktarını seçiniz"
+
+#: templates/js/translated/build.js:952
+#, fuzzy
+#| msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
+msgid "Select source location (leave blank to take from all locations)"
+msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)"
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr "Stok tahsisini onayla"
+
+#: templates/js/translated/build.js:983
+#, fuzzy
+#| msgid "Allocate Stock to Build"
+msgid "Allocate Stock Items to Build Order"
+msgstr "Yapım İşi için Stok Tahsis Et"
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock locations"
+msgstr "Eşleşen stok kalemi bulunamadı"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock items"
+msgstr "Eşleşen stok kalemi bulunamadı"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7194,22 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+#, fuzzy
+#| msgid "No variants found"
+msgid "No results found"
+msgstr "Çeşit bulunamadı"
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7329,33 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+#, fuzzy
+#| msgid "Stock Item"
+msgid "Stock ID"
+msgstr "Stok Kalemi"
+
+#: templates/js/translated/model_renderers.js:119
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:136
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8216,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr "Barkod İşlemleri"
@@ -8284,3 +8331,48 @@ msgstr ""
#: users/models.py:194
msgid "Permission to delete items"
msgstr ""
+
+#~ msgid "BuildItem must be unique for build, stock_item and install_into"
+#~ msgstr "Yapım işi ögesi; yapım işi, stok kalemi ve kurulacak yer için benzersiz olmalıdır"
+
+#~ msgid "Automatically Allocate Stock"
+#~ msgstr "Stoku Otomatik Olarak Tahsis Et"
+
+#~ msgid "The following stock items will be allocated to the specified build output"
+#~ msgstr "Aşağıdaki stok kalemleri, belirtilen yapım işi çıktısı için tahsis edilecek"
+
+#~ msgid "No stock items found that can be automatically allocated to this build"
+#~ msgstr "Bu yapım işi için otomatik tahsis edilecek stok kalemleri bulunamadı"
+
+#~ msgid "Stock items will have to be manually allocated"
+#~ msgstr "Stok kalemleri manuel olarak tahsis edilecek"
+
+#~ msgid "Select a stock item to allocate to the selected build output"
+#~ msgstr "Seçili yapım işi emri için tahsis edilecek bir stok kalemi seçiniz"
+
+#~ msgid "No stock available for %(part)s"
+#~ msgstr "%(part)s için mevcut stok yok"
+
+#~ msgid "Are you sure you want to unallocate this stock?"
+#~ msgstr "Bu stokun tahsisinin iptal etmek istediğinizden emin misiniz?"
+
+#~ msgid "The selected stock will be unallocated from the build output"
+#~ msgstr "Bu yapım işi için seçili stok tahsisi iptal edilecek"
+
+#~ msgid "Auto Allocate"
+#~ msgstr "Otomatik Tahsis Et"
+
+#~ msgid "Allocated stock to build output"
+#~ msgstr "Yapım işi çıktısına stok tahsis edildi"
+
+#~ msgid "Removed parts from build allocation"
+#~ msgstr "Yapım işinden tahsis edilen parçalar çıkarıldı"
+
+#~ msgid "Stock item must be selected"
+#~ msgstr "Stok kalemi seçilmeli"
+
+#~ msgid "Edit Stock Allocation"
+#~ msgstr "Stok Tahsisini Düzenle"
+
+#~ msgid "Updated Build Item"
+#~ msgstr "Yapım İşi Ögesini Güncelle"
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index b859adfbba..783e8aa6a9 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -522,6 +522,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -535,18 +539,17 @@ msgstr ""
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr ""
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,134 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1181,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr ""
@@ -1227,7 +1218,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1238,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1279,38 +1271,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1316,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1332,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1341,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1349,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1357,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1365,14 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1406,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1430,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1679,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1689,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1699,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1708,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1716,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1725,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1735,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2254,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2265,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2368,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2419,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2442,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2622,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2735,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2968,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3066,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3185,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3209,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3245,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3383,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3521,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3595,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3635,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3653,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3662,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3893,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3958,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4002,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5377,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5865,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6156,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6654,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6859,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6896,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6910,101 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+msgid "Allocate stock items to this build output"
msgstr ""
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:684
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:938
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1038
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7159,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7292,31 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
-msgid "Location ID"
-msgstr ""
-
-#: templates/js/translated/model_renderers.js:99
-msgid "Build ID"
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
#: templates/js/translated/model_renderers.js:119
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:136
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8177,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index a55f28e223..12bd3d70d6 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-05 01:53+0000\n"
+"POT-Creation-Date: 2021-10-05 02:21+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -34,9 +34,9 @@ msgid "Enter date"
msgstr "输入日期"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:30
+#: order/forms.py:41 order/forms.py:52 order/forms.py:63 order/forms.py:74
+#: part/forms.py:108 templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "确认"
@@ -119,7 +119,7 @@ msgid "File comment"
msgstr "文件注释"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1690
msgid "User"
@@ -159,7 +159,7 @@ msgid "Invalid choice"
msgstr "选择无效"
#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
@@ -167,18 +167,18 @@ msgstr "选择无效"
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:207 build/models.py:187
+#: InvenTree/models.py:207 build/models.py:189
#: build/templates/build/detail.html:24 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:898
-#: templates/js/translated/build.js:1186 templates/js/translated/company.js:344
+#: templates/js/translated/bom.js:230 templates/js/translated/build.js:1207
+#: templates/js/translated/build.js:1495 templates/js/translated/company.js:344
#: templates/js/translated/company.js:547
#: templates/js/translated/company.js:836 templates/js/translated/order.js:341
#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
@@ -197,7 +197,7 @@ msgstr "描述 (可选)"
msgid "parent"
msgstr "上级项"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "必须是有效数字"
@@ -522,6 +522,10 @@ msgstr "条码哈希值已经匹配库存项目"
msgid "Barcode associated with StockItem"
msgstr "与库存项关联的条形码"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "相关生产订单"
@@ -535,18 +539,17 @@ msgstr "订单预计日期"
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:969 templates/js/translated/order.js:358
+#: templates/js/translated/build.js:1278 templates/js/translated/order.js:358
#: templates/js/translated/order.js:728
msgid "Target Date"
msgstr "预计日期"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:34 common/models.py:1025
#: company/forms.py:42 company/templates/company/supplier_part.html:226
@@ -557,7 +560,7 @@ msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
#: order/templates/order/sales_order_detail.html:208
#: order/templates/order/sales_order_detail.html:293
#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029
#: part/templates/part/part_pricing.html:16
@@ -568,9 +571,9 @@ msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:636
-#: templates/js/translated/build.js:1196
-#: templates/js/translated/model_renderers.js:59
+#: templates/js/translated/build.js:303 templates/js/translated/build.js:627
+#: templates/js/translated/build.js:966 templates/js/translated/build.js:1505
+#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
@@ -606,82 +609,73 @@ msgstr "确认删除生产产出"
msgid "Confirm unallocation of stock"
msgstr "确认取消分配库存"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "确认库存分配"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "标记生产已完成"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:276 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:277
+#: stock/forms.py:280 stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:809
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:288
+#: templates/js/translated/build.js:639 templates/js/translated/order.js:809
#: templates/js/translated/part.js:179 templates/js/translated/stock.js:203
#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
#: templates/js/translated/stock.js:1567
msgid "Location"
msgstr "所在地"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "已完成部件所在地"
-#: build/forms.py:215 build/templates/build/build_base.html:138
+#: build/forms.py:203 build/templates/build/build_base.html:138
#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
+#: order/serializers.py:231 order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:932
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1241
#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
#: templates/js/translated/stock.js:1866
msgid "Status"
msgstr "状态"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "生产产出库存状态"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "确认未完成"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "确认以未完成库存分配方式完成"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "确认生产完成"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "确认取消"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "确认生产取消"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "选择要分配的库存数量"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr "上级生产选项无效"
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:265
msgid "Build Order"
msgstr "生产订单"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -693,43 +687,42 @@ msgstr "生产订单"
msgid "Build Orders"
msgstr "生产订单"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "相关生产订单"
-#: build/models.py:179 order/models.py:246 order/models.py:547
+#: build/models.py:181 order/models.py:246 order/models.py:547
#: order/models.py:727 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: part/models.py:2386 part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:725
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:237 templates/js/translated/build.js:723
+#: templates/js/translated/build.js:1499 templates/js/translated/order.js:517
msgid "Reference"
msgstr "引用"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr "生产的简短描述."
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "上级生产"
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr "此次生生匹配的订单"
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
+#: build/models.py:207 build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:705
#: order/models.py:780 order/models.py:845
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:345 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -737,9 +730,9 @@ msgstr "此次生生匹配的订单"
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:203 templates/js/translated/build.js:609
-#: templates/js/translated/build.js:903 templates/js/translated/build.js:1163
-#: templates/js/translated/company.js:488
+#: templates/js/translated/bom.js:203 templates/js/translated/build.js:600
+#: templates/js/translated/build.js:963 templates/js/translated/build.js:1212
+#: templates/js/translated/build.js:1472 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:471
#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
@@ -747,105 +740,106 @@ msgstr "此次生生匹配的订单"
msgid "Part"
msgstr "部件"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "选择生产所需部件"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr "相关销售订单"
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr "此次生产匹配的销售订单"
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:951
msgid "Source Location"
msgstr "来源地点"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr "目标地点"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr "选择已完成项目存储的位置"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "生产数量"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr "要生产的项目数量"
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "已完成项目"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "已完成的库存项目数量"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "生产状态"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "生产状态代码"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr "批量代码"
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
-#: build/models.py:272 order/models.py:162 part/models.py:853
+#: build/models.py:274 order/models.py:162 part/models.py:854
#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
msgid "Creation Date"
msgstr "创建日期"
-#: build/models.py:276 order/models.py:569
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "预计完成日期"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:974
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1283
msgid "Completion Date"
msgstr "完成日期:"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "完成人"
-#: build/models.py:294 templates/js/translated/build.js:945
+#: build/models.py:296 templates/js/translated/build.js:1254
msgid "Issued by"
msgstr "发布者"
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "发布此生产订单的用户"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:140 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:957
+#: templates/js/translated/build.js:1266
msgid "Responsible"
msgstr "责任人"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "负责此生产订单的用户"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -853,11 +847,11 @@ msgstr "负责此生产订单的用户"
msgid "External Link"
msgstr "外部链接"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "链接到外部 URL"
-#: build/models.py:314 build/templates/build/navbar.html:52
+#: build/models.py:316 build/templates/build/navbar.html:52
#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
@@ -865,7 +859,7 @@ msgstr "链接到外部 URL"
#: order/templates/order/po_navbar.html:41
#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
@@ -878,115 +872,138 @@ msgstr "链接到外部 URL"
msgid "Notes"
msgstr "备注"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "额外的生产备注"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "未指定生产产出"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "生产产出已完成"
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr "生产产出与订单不匹配"
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:946
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:949
+#: build/models.py:1127 order/models.py:949
msgid "Allocation quantity must be greater than zero"
msgstr "分配数量必须大于0"
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:876
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1185
#: templates/navbar.html:35
msgid "Build"
msgstr "生产"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1019 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
+#: templates/js/translated/build.js:965 templates/js/translated/build.js:1328
+#: templates/js/translated/order.js:797 templates/js/translated/order.js:802
+#: templates/js/translated/stock.js:1626
msgid "Stock Item"
msgstr "库存项"
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr "源库存项"
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 stock/models.py:351
+#: stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+#, fuzzy
+#| msgid "Build Quantity"
+msgid "Build Output"
+msgstr "生产数量"
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+#, fuzzy
+#| msgid "Allocation quantity must be greater than zero"
+msgid "Allocation items must be provided"
+msgstr "分配数量必须大于0"
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:206
#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:634
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:625
+#: templates/js/translated/model_renderers.js:72
msgid "Serial Number"
msgstr "序列号"
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1168,28 +1185,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1219,7 +1214,7 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:940
+#: templates/js/translated/build.js:1249
msgid "Created"
msgstr "已创建"
@@ -1227,7 +1222,7 @@ msgstr "已创建"
msgid "No target date set"
msgstr "无预计日期"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:918
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1227
msgid "Completed"
msgstr ""
@@ -1247,15 +1242,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:808
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:806
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr "未分配库存"
@@ -1279,38 +1275,44 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "未跟踪的库存尚未完全分配给此生产订单"
#: build/templates/build/detail.html:197
+#, fuzzy
+#| msgid "Completed items"
+msgid "Allocate selected items"
+msgstr "已完成项目"
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr "未完成的生产产出"
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1320,11 +1322,11 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:399
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
#: order/templates/order/purchase_order_detail.html:62
@@ -1336,7 +1338,7 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:358
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:157
#: order/templates/order/sales_order_detail.html:146
@@ -1345,7 +1347,7 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:377
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:129
#: order/templates/order/sales_order_detail.html:119
@@ -1353,7 +1355,7 @@ msgstr ""
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
@@ -1361,7 +1363,7 @@ msgstr ""
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:385
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:137
#: order/templates/order/sales_order_detail.html:126
@@ -1369,6 +1371,18 @@ msgstr ""
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+#, fuzzy
+#| msgid "Stock allocation is incomplete"
+msgid "Allocation Complete"
+msgstr "库存分配尚未完成"
+
+#: build/templates/build/detail.html:444
+#, fuzzy
+#| msgid "Number of stock items which have been completed"
+msgid "All untracked stock items have been allocated"
+msgstr "已完成的库存项目数量"
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1402,11 +1416,6 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1431,120 +1440,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1389
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:404
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:735 templates/js/translated/build.js:1026
-#: templates/js/translated/build.js:1203
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1718,7 +1689,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:342
msgid "Template"
@@ -1728,7 +1699,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:354
msgid "Assembly"
@@ -1738,7 +1709,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
+#: common/models.py:617 part/models.py:812
#: templates/js/translated/table_filters.js:358
msgid "Component"
msgstr ""
@@ -1747,7 +1718,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1755,7 +1726,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
+#: common/models.py:631 part/models.py:828
#: templates/js/translated/table_filters.js:366
msgid "Salable"
msgstr ""
@@ -1764,7 +1735,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:370
msgid "Trackable"
@@ -1774,7 +1745,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -2293,7 +2264,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:714
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:536
#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
@@ -2304,7 +2275,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
@@ -2407,7 +2378,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:799 part/models.py:2220
+#: company/models.py:429 part/models.py:800 part/models.py:2224
#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
@@ -2458,16 +2429,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2481,7 +2452,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
@@ -2661,7 +2632,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:611
msgid "Assigned Stock"
msgstr ""
@@ -2774,7 +2745,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:57
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
@@ -3007,14 +2978,10 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:251
+#: order/api.py:249
msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:310
-msgid "Destination location must be specified"
-msgstr ""
-
#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
@@ -3109,10 +3076,6 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -3232,6 +3195,10 @@ msgstr ""
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
+#: order/models.py:946
+msgid "StockItem is over-allocated"
+msgstr ""
+
#: order/models.py:952
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
@@ -3252,35 +3219,35 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:277
+#: order/serializers.py:218 order/serializers.py:278
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:235
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:236
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:251
+#: order/serializers.py:252
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:290
+#: order/serializers.py:289
msgid "Line items must be provided"
msgstr ""
@@ -3288,7 +3255,11 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:515
+#: order/serializers.py:331
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:556
msgid "Sale price currency"
msgstr ""
@@ -3422,6 +3393,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:858
msgid "Remove row"
msgstr ""
@@ -3559,7 +3531,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
+#: part/models.py:299 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
#: part/templates/part/category_navbar.html:24
@@ -3633,18 +3605,18 @@ msgid "Sales Order Items"
msgstr ""
#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:789
-#: templates/js/translated/build.js:1226
+#: templates/js/translated/bom.js:394 templates/js/translated/build.js:787
+#: templates/js/translated/build.js:1535
msgid "Actions"
msgstr ""
#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1037
+#: templates/js/translated/build.js:664 templates/js/translated/build.js:1346
msgid "Edit stock allocation"
msgstr ""
#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1038
+#: templates/js/translated/build.js:666 templates/js/translated/build.js:1347
msgid "Delete stock allocation"
msgstr ""
@@ -3673,7 +3645,8 @@ msgid "Total price"
msgstr ""
#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:740 templates/js/translated/build.js:1033
+#: templates/js/translated/build.js:738 templates/js/translated/build.js:964
+#: templates/js/translated/build.js:1342
msgid "Allocated"
msgstr ""
@@ -3690,7 +3663,7 @@ msgid "Allocate serial numbers"
msgstr ""
#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:803
+#: templates/js/translated/build.js:801
msgid "Allocate stock"
msgstr ""
@@ -3699,7 +3672,7 @@ msgid "Purchase stock"
msgstr ""
#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:796 templates/js/translated/build.js:1234
+#: templates/js/translated/build.js:794 templates/js/translated/build.js:1543
msgid "Build stock"
msgstr ""
@@ -3930,7 +3903,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3995,7 +3968,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4039,391 +4012,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
+#: part/models.py:702 part/templates/part/part_base.html:235
#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
+#: part/models.py:710 part/templates/part/part_base.html:252
#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
#: templates/js/translated/table_filters.js:337
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1216
+#: part/models.py:2137 templates/js/translated/part.js:1216
#: templates/js/translated/stock.js:556
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1225
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1233
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1240
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
#: templates/InvenTree/settings/settings.html:162
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:171
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
+#: part/models.py:2379 templates/js/translated/bom.js:256
#: templates/js/translated/bom.js:314
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
+#: part/models.py:2395 templates/js/translated/bom.js:331
#: templates/js/translated/bom.js:338
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:323
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5418,44 +5387,44 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:157
+#: stock/api.py:160
msgid "Request must contain list of stock items"
msgstr ""
-#: stock/api.py:165
+#: stock/api.py:168
msgid "Improperly formatted data"
msgstr ""
-#: stock/api.py:173
+#: stock/api.py:176
msgid "Each entry must contain a valid integer primary-key"
msgstr ""
-#: stock/api.py:179
+#: stock/api.py:182
msgid "Primary key does not match valid stock item"
msgstr ""
-#: stock/api.py:189
+#: stock/api.py:192
msgid "Invalid quantity value"
msgstr ""
-#: stock/api.py:194
+#: stock/api.py:197
msgid "Quantity must not be less than zero"
msgstr ""
-#: stock/api.py:222
+#: stock/api.py:225
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:258 stock/api.py:291
+#: stock/api.py:261 stock/api.py:294
msgid "Specified quantity exceeds stock quantity"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:284
msgid "Valid location must be specified"
msgstr ""
-#: stock/api.py:301
+#: stock/api.py:304
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
@@ -5906,7 +5875,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: templates/js/translated/build.js:647
msgid "No location set"
msgstr ""
@@ -6197,7 +6166,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1143
msgid "Create new Stock Item"
msgstr ""
@@ -6695,8 +6664,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:937
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6900,10 +6869,15 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1176
+#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1485
msgid "Open subassembly"
msgstr ""
+#: templates/js/translated/bom.js:269 templates/js/translated/build.js:733
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:1512
+msgid "Available"
+msgstr ""
+
#: templates/js/translated/bom.js:287
msgid "Purchase Price Range"
msgstr ""
@@ -6932,8 +6906,8 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1274
+#: templates/js/translated/bom.js:499 templates/js/translated/build.js:474
+#: templates/js/translated/build.js:1583
msgid "No BOM items found"
msgstr ""
@@ -6946,69 +6920,115 @@ msgid "Create Build Order"
msgstr ""
#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
-msgstr ""
+#, fuzzy
+#| msgid "Batch code for this build output"
+msgid "Allocate stock items to this build output"
+msgstr "此生产产出的批量代码"
#: templates/js/translated/build.js:135
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:144
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:153
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:254
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:292 templates/js/translated/order.js:813
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
+#: templates/js/translated/build.js:684
+#, fuzzy
+#| msgid "Confirm stock allocation"
+msgid "Edit Allocation"
+msgstr "确认库存分配"
-#: templates/js/translated/build.js:709
+#: templates/js/translated/build.js:694
+#, fuzzy
+#| msgid "Source Location"
+msgid "Remove Allocation"
+msgstr "来源地点"
+
+#: templates/js/translated/build.js:707
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:730
+#: templates/js/translated/build.js:728
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:800 templates/js/translated/build.js:1238
+#: templates/js/translated/build.js:798 templates/js/translated/build.js:1547
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:853
+#: templates/js/translated/build.js:869
+#, fuzzy
+#| msgid "Confirm stock allocation"
+msgid "Specify stock allocation quantity"
+msgstr "确认库存分配"
+
+#: templates/js/translated/build.js:938
+#, fuzzy
+#| msgid "Select quantity of stock to allocate"
+msgid "You must select at least one part to allocate"
+msgstr "选择要分配的库存数量"
+
+#: templates/js/translated/build.js:952
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:982
+msgid "Confirm stock allocation"
+msgstr "确认库存分配"
+
+#: templates/js/translated/build.js:983
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:994
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock locations"
+msgstr "未找到匹配的库存项"
+
+#: templates/js/translated/build.js:1038
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "No matching stock items"
+msgstr "未找到匹配的库存项"
+
+#: templates/js/translated/build.js:1162
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:870 templates/js/translated/part.js:856
+#: templates/js/translated/build.js:1179 templates/js/translated/part.js:856
#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
#: templates/js/translated/stock.js:1477
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:890
+#: templates/js/translated/build.js:1199
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:951 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1260 templates/js/translated/stock.js:1696
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1272
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1014
+#: templates/js/translated/build.js:1323
msgid "No parts allocated for"
msgstr ""
@@ -7163,16 +7183,22 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+#, fuzzy
+#| msgid "No serial numbers found"
+msgid "No results found"
+msgstr "未找到序列号"
+
+#: templates/js/translated/forms.js:1524
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1738
msgid "Clear input"
msgstr ""
@@ -7292,27 +7318,33 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+#, fuzzy
+#| msgid "Stock Item"
+msgid "Stock ID"
+msgstr "库存项"
+
+#: templates/js/translated/model_renderers.js:119
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:136
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:156
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:208
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:245
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:274
msgid "Supplier Part ID"
msgstr ""
@@ -8173,6 +8205,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""