diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 2f26395b56..8a217382ef 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: German\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr "Doppelte Seriennummer: {n}"
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
@@ -121,7 +121,7 @@ msgstr "Datei-Kommentar"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr "Benutzer"
@@ -163,7 +163,7 @@ msgstr "Ungültige Auswahl"
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr "Name"
@@ -184,8 +184,8 @@ msgstr "Name"
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr "Beschreibung"
@@ -578,8 +578,8 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr "Anzahl"
@@ -616,14 +616,15 @@ msgid "Mark build as complete"
msgstr "Bauauftrag als vollständig markieren"
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr "Lagerort"
@@ -636,8 +637,8 @@ msgstr "Lagerort der Endprodukte"
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr "Status"
@@ -735,8 +736,8 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr "Teil"
@@ -864,11 +865,11 @@ msgstr "Link zu einer externen URL"
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr "Notizen"
@@ -934,7 +935,7 @@ msgstr "Bauauftrag starten um Teile zuzuweisen"
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr "BestandsObjekt"
@@ -1211,7 +1212,7 @@ msgstr "Ziel-Lagerort nicht angegeben"
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1419,7 +1420,7 @@ msgid "Build Order Details"
msgstr "Bauauftrag-details"
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr "Details"
@@ -1455,7 +1456,7 @@ msgstr "Endprodukt anlegen"
msgid "Maximum output quantity is "
msgstr "Maximale Endproduktmenge ist "
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
@@ -1471,7 +1472,7 @@ msgstr "Endprodukt entfernen"
msgid "Confirm unallocation of build stock"
msgstr "Entfernung von Bestands-Zuordnung bestätigen"
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr "Bestätigungsbox bestätigen"
@@ -2311,7 +2312,7 @@ msgid "Does this company manufacture parts?"
msgstr "Produziert diese Firma Teile?"
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr "Währung"
@@ -2377,7 +2378,7 @@ msgstr "Parametername"
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr "Wert"
@@ -2451,7 +2452,7 @@ msgstr "Mindestpreis"
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr "Verpackungen"
@@ -2521,7 +2522,7 @@ msgstr "Telefon"
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr "Kunde"
@@ -2752,15 +2753,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr "Lagerbestand"
@@ -2789,7 +2790,7 @@ msgstr "Zuliefererteile"
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Teilbestand"
@@ -2797,7 +2798,7 @@ msgstr "Teilbestand"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr "Zuliefererteil"
@@ -3142,8 +3143,8 @@ msgstr "Bestellung"
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr "Bestellung"
@@ -3162,8 +3163,8 @@ msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr "Preis"
@@ -4182,7 +4183,7 @@ 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:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr "Test-Name"
@@ -5335,7 +5336,7 @@ msgid "Result"
msgstr "Ergebnis"
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr "Datum"
@@ -5347,51 +5348,9 @@ msgstr "bestanden"
msgid "Fail"
msgstr "fehlgeschlagen"
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr "Falsch formatierte Daten"
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr "Ungültige Menge"
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr "Menge muss größer als Null sein"
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr "Bestand für {n} Objekte geändert"
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr "Die angegebene Menge überschreitet die Lagermenge"
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr "Gültiger Standort muss angegeben werden"
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr "{n} Teile nach {loc} bewegt"
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr "Ablaufdatum"
@@ -5635,6 +5594,28 @@ msgstr "Test Ergebnis Anhang"
msgid "Test notes"
msgstr "Test Notizen"
+#: stock/serializers.py:424
+#, fuzzy
+#| msgid "Stock Item already scanned"
+msgid "StockItem primary key value"
+msgstr "BestandsObjekte bereits gescannt"
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr "Bestandsbewegungsnotizen"
+
+#: stock/serializers.py:462
+#, fuzzy
+#| msgid "Valid location must be specified"
+msgid "A list of stock items must be provided"
+msgstr "Gültiger Standort muss angegeben werden"
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "Select destination stock location"
+msgid "Destination stock location"
+msgstr "Zielstandort auswählen"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr "Informationen zum Lagerbestands-Tracking"
@@ -5672,7 +5653,7 @@ msgstr "Test-Bericht"
msgid "Installed Stock Items"
msgstr "Installierte BestandsObjekte"
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr "BestandsObjekt installiert"
@@ -5862,7 +5843,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Dieses BestandsObjekt läuft am %(item.expiry_date)s ab"
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
@@ -6044,7 +6025,7 @@ msgstr "Lade..."
msgid "The following stock items will be uninstalled"
msgstr "Die folgenden BestandsObjekte werden nicht mehr verbaut"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr "BestandsObjekt umwandeln"
@@ -6065,104 +6046,104 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr "Sind Sie sicher, dass Sie diesen BestandsObjekt-Verfolgungs-Eintrag löschen wollen?"
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr "BestandsObjekt-Lagerort bearbeiten"
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)"
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr "QR-Code für diesen Lagerort"
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr "Kunden zuweisen"
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr "Kunde muss angegeben werden"
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr "zurück ins Lager"
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr "gültigen Lagerort angeben"
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr "BestandsObjekt retoure vom Kunden"
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr "alle Testdaten löschen"
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr "Löschen Testdaten bestätigen"
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr "BestandsObjekt-QR-Code"
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr "BestandsObjekte deinstallieren"
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr "Bestands-Anpassung bestätigen"
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr "BestandsObjekte deinstalliert"
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr "BestandsObjekt bearbeiten"
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr "Neuen Lagerort erstellen"
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr "Lagerbestand erfassen"
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr "Neues BestandsObjekt hinzufügen"
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr "Bestand duplizieren"
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr "Anzahl kann nicht negativ sein"
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr "Bestand-Lagerort löschen"
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr "BestandsObjekt löschen"
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag löschen"
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag bearbeiten"
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag hinzufügen"
@@ -6600,7 +6581,7 @@ msgid "Select Test Report Template"
msgstr "Test-Bericht-Vorlage auswählen"
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr "BestandsObjekte auswählen"
@@ -6795,7 +6776,7 @@ msgstr "Dadurch wird die Verknüpfung zwischen diesem BestandsObjekt und dem Bar
msgid "Unlink"
msgstr "Entfernen"
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr "BestandsObjekt entfernen"
@@ -6983,8 +6964,8 @@ msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr "Auswählen"
@@ -6992,7 +6973,7 @@ msgstr "Auswählen"
msgid "Build order is overdue"
msgstr "Bauauftrag ist überfällig"
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr "Keine Benutzerinformation"
@@ -7346,7 +7327,7 @@ msgstr "BestandsObjekt muss ausgewählt sein"
msgid "Quantity to receive"
msgstr "Anzahl kann nicht negativ sein"
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr "Status"
@@ -7444,7 +7425,7 @@ msgstr "Start-Bestandsmenge"
msgid "Specify initial stock quantity for this part"
msgstr "Menge des anfänglichen Bestands für dieses Teil angeben"
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr "Zielstandort auswählen"
@@ -7529,7 +7510,7 @@ msgstr "Keine Kategorie"
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr "Pfad"
@@ -7537,11 +7518,11 @@ msgstr "Pfad"
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr "Testergebnis löschen"
@@ -7580,256 +7561,252 @@ msgstr "Einzelpreis"
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr "Bestand exportieren"
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr "Format"
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr "Dateiformat auswählen"
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr "Einschließlich Unterstandorte"
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr "Bestand verschieben"
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr "Verschieben"
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr "Bestand zählen"
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr "Anzahl"
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr "Bestand entfernen"
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr "Entfernen"
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr "Hinzufügen"
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr "Bestand löschen"
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden"
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr "Bestandsanzahl angeben"
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr "Sie müssen mindestens einen Lagerbestand auswählen"
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr "Bestandsbewegungsnotizen"
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr "ERFOLGREICH"
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr "FEHLGESCHLAGEN"
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr "KEIN ERGEBNIS"
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr "Testergebnis hinzufügen"
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr "Keine Testergebnisse gefunden"
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr "Testdatum"
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr "In Arbeit"
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr "In BestandsObjekt installiert"
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr "an Kunde versand"
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr "Auftrag zugewiesen"
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr "Kein Lagerort gesetzt"
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr "BestandsObjekt wird produziert"
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr "BestandsObjekt wurde Auftrag zugewiesen"
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr "BestandsObjekt wurde Kunden zugewiesen"
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr "BestandsObjekt ist abgelaufen"
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr "BestandsObjekt läuft demnächst ab"
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr "BestandsObjekt zugewiesen"
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr "BestandsObjekt in anderem Element verbaut"
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr "BestandsObjekt abgewiesen"
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr "BestandsObjekt verloren"
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr "BestandsObjekt zerstört"
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr "gelöscht"
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr "Inventur"
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr "Keine zur Anfrage passenden BestandsObjekte"
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr "Teile"
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr "lose"
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr "Lagerorte"
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr "unbekannter Lagerort"
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr "Status setzen"
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr "Status Code setzen"
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr "Ungültiges Datum"
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr "Standort nicht mehr vorhanden"
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr "Bestellung existiert nicht mehr"
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr "Kunde existiert nicht mehr"
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr "Lagerbestand existiert nicht mehr"
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr "Hinzugefügt"
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr "Entfernt"
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr "Tracking-Eintrag bearbeiten"
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr "Tracking-Eintrag löschen"
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr "Keine installierten Elemente"
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr "Seriennummer"
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr "Lagerbestand entfernen"
@@ -8337,6 +8314,27 @@ msgstr "Berechtigungen Einträge zu ändern"
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
+#~ msgid "Improperly formatted data"
+#~ msgstr "Falsch formatierte Daten"
+
+#~ msgid "Invalid quantity value"
+#~ msgstr "Ungültige Menge"
+
+#~ msgid "Quantity must not be less than zero"
+#~ msgstr "Menge muss größer als Null sein"
+
+#~ msgid "Updated stock for {n} items"
+#~ msgstr "Bestand für {n} Objekte geändert"
+
+#~ msgid "Specified quantity exceeds stock quantity"
+#~ msgstr "Die angegebene Menge überschreitet die Lagermenge"
+
+#~ msgid "Valid location must be specified"
+#~ msgstr "Gültiger Standort muss angegeben werden"
+
+#~ msgid "Moved {n} parts to {loc}"
+#~ msgstr "{n} Teile nach {loc} bewegt"
+
#~ msgid "Receive outstanding parts for %(order)s - %(desc)s"
#~ msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 1d48750d2b..c69a9c1220 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr ""
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr ""
@@ -163,7 +163,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr ""
@@ -184,8 +184,8 @@ msgstr ""
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr ""
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr ""
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr ""
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr ""
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1198,7 +1199,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1400,7 +1401,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1436,7 +1437,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1452,7 +1453,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2292,7 +2293,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2358,7 +2359,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2432,7 +2433,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2502,7 +2503,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2733,15 +2734,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2770,7 +2771,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2778,7 +2779,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3121,8 +3122,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3141,8 +3142,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4157,7 +4158,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5310,7 +5311,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5322,51 +5323,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5610,6 +5569,22 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5647,7 +5622,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5837,7 +5812,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6019,7 +5994,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6040,104 +6015,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6575,7 +6550,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6770,7 +6745,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6940,8 +6915,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6949,7 +6924,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7293,7 +7268,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7385,7 +7360,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7470,7 +7445,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7478,11 +7453,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7521,256 +7496,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 0fbf153741..cecc30b402 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -75,7 +75,7 @@ msgid "Duplicate serial: {n}"
msgstr ""
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -122,7 +122,7 @@ msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr ""
@@ -164,7 +164,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr ""
@@ -185,8 +185,8 @@ msgstr ""
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr ""
@@ -577,8 +577,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr ""
@@ -615,14 +615,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -635,8 +636,8 @@ msgstr ""
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -734,8 +735,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr ""
@@ -863,11 +864,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -930,7 +931,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1199,7 +1200,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1401,7 +1402,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1437,7 +1438,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1453,7 +1454,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2293,7 +2294,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2359,7 +2360,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2433,7 +2434,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2503,7 +2504,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2734,15 +2735,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2771,7 +2772,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2779,7 +2780,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3122,8 +3123,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3142,8 +3143,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4158,7 +4159,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5311,7 +5312,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5323,51 +5324,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5611,6 +5570,22 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5648,7 +5623,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5838,7 +5813,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6020,7 +5995,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6041,104 +6016,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6576,7 +6551,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6771,7 +6746,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6941,8 +6916,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6950,7 +6925,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7294,7 +7269,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7386,7 +7361,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7471,7 +7446,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7479,11 +7454,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7522,256 +7497,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 4e3348fac7..12550cf1d1 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr "Número de serie duplicado: {n}"
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
@@ -121,7 +121,7 @@ msgstr "Comentario del archivo"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr "Usuario"
@@ -163,7 +163,7 @@ msgstr "Selección no válida"
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr "Nombre"
@@ -184,8 +184,8 @@ msgstr "Nombre"
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr "Descripción"
@@ -576,8 +576,8 @@ msgstr "Fecha límite para la finalización de la construcción. La construcció
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr "Cantidad"
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr "Marcar como construcción completa"
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr "Unicación"
@@ -634,8 +635,8 @@ msgstr "Ubicación de las partes completadas"
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr "Estado"
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr "Parte"
@@ -862,11 +863,11 @@ msgstr "Enlace a URL externa"
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr "Notas"
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1200,7 +1201,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1408,7 +1409,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr "Detalles"
@@ -1444,7 +1445,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1460,7 +1461,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2300,7 +2301,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2366,7 +2367,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2440,7 +2441,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2510,7 +2511,7 @@ msgstr "Teléfono"
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr "Cliente"
@@ -2741,15 +2742,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2778,7 +2779,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2786,7 +2787,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3129,8 +3130,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3149,8 +3150,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4169,7 +4170,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5322,7 +5323,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5334,51 +5335,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5622,6 +5581,26 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+#, fuzzy
+#| msgid "Number of stock items to build"
+msgid "A list of stock items must be provided"
+msgstr "Número de objetos existentes a construir"
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "Destination stock location"
+msgstr "No se ha encontrado ningún artículo de stock que coincida"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5659,7 +5638,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5849,7 +5828,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6031,7 +6010,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6052,104 +6031,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6587,7 +6566,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6782,7 +6761,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6964,8 +6943,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6973,7 +6952,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7321,7 +7300,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7417,7 +7396,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7502,7 +7481,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7510,11 +7489,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7553,256 +7532,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 0b80661f65..eafdc1b58c 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: French\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr "Dupliquer le numéro de série: {n}"
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
@@ -121,7 +121,7 @@ msgstr "Commentaire du fichier"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr "Utilisateur"
@@ -163,7 +163,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr "Nom"
@@ -184,8 +184,8 @@ msgstr "Nom"
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr "Description"
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr "Quantité"
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr "Emplacement des pièces terminées"
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr "Pièce"
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr "Notes"
@@ -931,7 +932,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1200,7 +1201,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1404,7 +1405,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr "Détails"
@@ -1440,7 +1441,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1456,7 +1457,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2296,7 +2297,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2362,7 +2363,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2436,7 +2437,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2506,7 +2507,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2737,15 +2738,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2774,7 +2775,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2782,7 +2783,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3125,8 +3126,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3145,8 +3146,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4163,7 +4164,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5316,7 +5317,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5328,51 +5329,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5616,6 +5575,24 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "No matching action found"
+msgid "Destination stock location"
+msgstr "Aucune action correspondante trouvée"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5653,7 +5630,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5843,7 +5820,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6025,7 +6002,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6046,104 +6023,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6581,7 +6558,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6776,7 +6753,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6954,8 +6931,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6963,7 +6940,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7311,7 +7288,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7407,7 +7384,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7492,7 +7469,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7500,11 +7477,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7543,256 +7520,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index fd5fb88515..2616fe4649 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr ""
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr ""
@@ -163,7 +163,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr ""
@@ -184,8 +184,8 @@ msgstr ""
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr ""
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr ""
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr ""
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr ""
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1198,7 +1199,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1400,7 +1401,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1436,7 +1437,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1452,7 +1453,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2292,7 +2293,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2358,7 +2359,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2432,7 +2433,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2502,7 +2503,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2733,15 +2734,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2770,7 +2771,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2778,7 +2779,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3121,8 +3122,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3141,8 +3142,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4157,7 +4158,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5310,7 +5311,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5322,51 +5323,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5610,6 +5569,22 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5647,7 +5622,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5837,7 +5812,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6019,7 +5994,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6040,104 +6015,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6575,7 +6550,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6770,7 +6745,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6940,8 +6915,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6949,7 +6924,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7293,7 +7268,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7385,7 +7360,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7470,7 +7445,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7478,11 +7453,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7521,256 +7496,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 78d0c9ff4e..691f009ded 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr ""
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr ""
@@ -163,7 +163,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr ""
@@ -184,8 +184,8 @@ msgstr ""
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr ""
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr ""
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr ""
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr ""
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1198,7 +1199,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1400,7 +1401,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1436,7 +1437,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1452,7 +1453,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2292,7 +2293,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2358,7 +2359,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2432,7 +2433,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2502,7 +2503,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2733,15 +2734,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2770,7 +2771,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2778,7 +2779,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3121,8 +3122,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3141,8 +3142,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4157,7 +4158,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5310,7 +5311,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5322,51 +5323,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5610,6 +5569,22 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5647,7 +5622,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5837,7 +5812,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6019,7 +5994,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6040,104 +6015,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6575,7 +6550,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6770,7 +6745,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6940,8 +6915,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6949,7 +6924,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7293,7 +7268,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7385,7 +7360,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7470,7 +7445,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7478,11 +7453,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7521,256 +7496,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 7b01925639..4f6b52b63c 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr ""
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr ""
@@ -163,7 +163,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr ""
@@ -184,8 +184,8 @@ msgstr ""
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr ""
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr "Quantità"
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr ""
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr ""
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1198,7 +1199,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1400,7 +1401,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1436,7 +1437,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1452,7 +1453,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2292,7 +2293,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2358,7 +2359,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2432,7 +2433,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2502,7 +2503,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2733,15 +2734,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2770,7 +2771,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2778,7 +2779,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3121,8 +3122,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3141,8 +3142,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4157,7 +4158,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5310,7 +5311,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5322,51 +5323,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5610,6 +5569,24 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "No matching action found"
+msgid "Destination stock location"
+msgstr "Nessuna azione corrispondente trovata"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5647,7 +5624,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5837,7 +5814,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6019,7 +5996,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6040,104 +6017,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6575,7 +6552,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6770,7 +6747,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6944,8 +6921,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6953,7 +6930,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7297,7 +7274,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7389,7 +7366,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7474,7 +7451,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7482,11 +7459,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7525,256 +7502,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 2900894e81..e4d26f5487 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr ""
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "数量コードが無効です"
@@ -121,7 +121,7 @@ msgstr "ファイルコメント"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr "ユーザー"
@@ -163,7 +163,7 @@ msgstr "無効な選択です"
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr "お名前"
@@ -184,8 +184,8 @@ msgstr "お名前"
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr "説明"
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr ""
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr "完了したパーツの場所"
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr "パーツ"
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -929,7 +930,7 @@ msgstr "パーツを割り当てるためにビルドする"
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1198,7 +1199,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1402,7 +1403,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1438,7 +1439,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1454,7 +1455,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2294,7 +2295,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2360,7 +2361,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2434,7 +2435,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2504,7 +2505,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2735,15 +2736,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2772,7 +2773,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2780,7 +2781,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3123,8 +3124,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3143,8 +3144,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4159,7 +4160,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5312,7 +5313,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5324,51 +5325,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5612,6 +5571,24 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "No matching action found"
+msgid "Destination stock location"
+msgstr "一致するアクションが見つかりませんでした"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5649,7 +5626,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5839,7 +5816,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6021,7 +5998,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6042,104 +6019,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6577,7 +6554,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6772,7 +6749,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6946,8 +6923,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6955,7 +6932,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7301,7 +7278,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7395,7 +7372,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7480,7 +7457,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7488,11 +7465,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7531,256 +7508,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index c017dd2a05..9fee577e4f 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr ""
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr ""
@@ -163,7 +163,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr ""
@@ -184,8 +184,8 @@ msgstr ""
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr ""
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr ""
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr ""
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr ""
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1198,7 +1199,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1400,7 +1401,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1436,7 +1437,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1452,7 +1453,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2292,7 +2293,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2358,7 +2359,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2432,7 +2433,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2502,7 +2503,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2733,15 +2734,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2770,7 +2771,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2778,7 +2779,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3121,8 +3122,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3141,8 +3142,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4157,7 +4158,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5310,7 +5311,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5322,51 +5323,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5610,6 +5569,22 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5647,7 +5622,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5837,7 +5812,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6019,7 +5994,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6040,104 +6015,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6575,7 +6550,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6770,7 +6745,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6940,8 +6915,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6949,7 +6924,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7293,7 +7268,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7385,7 +7360,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7470,7 +7445,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7478,11 +7453,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7521,256 +7496,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 0c0cd9aeab..2ef6522f3f 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr "Dubbel serienummer: {n}"
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveeldheid ingevoerd"
@@ -121,7 +121,7 @@ msgstr "Bijlage opmerking"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr "Gebruiker"
@@ -163,7 +163,7 @@ msgstr "Ongeldige keuze"
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr "Naam"
@@ -184,8 +184,8 @@ msgstr "Naam"
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr "Omschrijving"
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr "Aantal"
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr "Markeer build als voltooid"
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr "Locatie"
@@ -634,8 +635,8 @@ msgstr "Locatie van voltooide onderdelen"
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr "Status"
@@ -733,8 +734,8 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr "Onderdeel"
@@ -862,11 +863,11 @@ msgstr "Link naar externe URL"
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr "Opmerkingen"
@@ -931,7 +932,7 @@ msgstr "Bouw om onderdelen toe te wijzen"
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr "Voorraadartikel"
@@ -1202,7 +1203,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1410,7 +1411,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1446,7 +1447,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1462,7 +1463,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2302,7 +2303,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2368,7 +2369,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2442,7 +2443,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2512,7 +2513,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2743,15 +2744,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2780,7 +2781,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2788,7 +2789,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3131,8 +3132,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3151,8 +3152,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4171,7 +4172,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5324,7 +5325,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5336,51 +5337,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5624,6 +5583,24 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "Destination Location"
+msgid "Destination stock location"
+msgstr "Bestemmings Locatie"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5661,7 +5638,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5851,7 +5828,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6033,7 +6010,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6054,104 +6031,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr "Bewerk voorraadlocatie"
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr "QR-code voor voorraadlocatie"
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr "Specificeer een geldige locatie"
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr "Maak nieuwe voorraadlocatie"
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr "Verwijder voorraadlocatie"
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6589,7 +6566,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6784,7 +6761,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6970,8 +6947,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6979,7 +6956,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7329,7 +7306,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7425,7 +7402,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7510,7 +7487,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7518,11 +7495,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7561,256 +7538,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr "Geen voorraadlocatie ingesteld"
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 3f1822e739..5e24effc46 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr "Dupliser serie: {n}"
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
@@ -121,7 +121,7 @@ msgstr "Kommentar til fil"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr "Bruker"
@@ -163,7 +163,7 @@ msgstr "Ugyldig valg"
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr "Navn"
@@ -184,8 +184,8 @@ msgstr "Navn"
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr "Beskrivelse"
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr ""
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr ""
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr ""
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1198,7 +1199,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1400,7 +1401,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1436,7 +1437,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1452,7 +1453,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2292,7 +2293,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2358,7 +2359,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2432,7 +2433,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2502,7 +2503,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2733,15 +2734,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2770,7 +2771,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2778,7 +2779,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3121,8 +3122,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3141,8 +3142,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4157,7 +4158,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5310,7 +5311,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5322,51 +5323,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5610,6 +5569,24 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "Destination stock location"
+msgstr "Ingen samsvarende lagervare funnet"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5647,7 +5624,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5837,7 +5814,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6019,7 +5996,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6040,104 +6017,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6575,7 +6552,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6770,7 +6747,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6944,8 +6921,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6953,7 +6930,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7299,7 +7276,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7393,7 +7370,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7478,7 +7455,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7486,11 +7463,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7529,256 +7506,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 69a569a4b3..56d4ca822c 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr "Powtórzony numer seryjny: {n}"
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
@@ -121,7 +121,7 @@ msgstr "Komentarz pliku"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr "Użytkownik"
@@ -163,7 +163,7 @@ msgstr "Błędny wybór"
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr "Nazwa"
@@ -184,8 +184,8 @@ msgstr "Nazwa"
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr "Opis"
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr "Ilość"
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr "Oznacz budowę jako ukończoną"
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr "Lokalizacja"
@@ -634,8 +635,8 @@ msgstr "Lokalizacja ukończonych części"
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr "Status"
@@ -733,8 +734,8 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr "Część"
@@ -862,11 +863,11 @@ msgstr "Link do zewnętrznego adresu URL"
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr "Uwagi"
@@ -930,7 +931,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr "Element magazynowy"
@@ -1203,7 +1204,7 @@ msgstr "Nie określono lokalizacji docelowej"
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1411,7 +1412,7 @@ msgid "Build Order Details"
msgstr "Szczegóły zlecenia budowy"
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr "Szczegóły"
@@ -1447,7 +1448,7 @@ msgstr "Utwórz zlecenie budowy"
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
@@ -1463,7 +1464,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2303,7 +2304,7 @@ msgid "Does this company manufacture parts?"
msgstr "Czy to przedsiębiorstwo produkuje części?"
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr "Waluta"
@@ -2369,7 +2370,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2443,7 +2444,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr "Opakowanie"
@@ -2513,7 +2514,7 @@ msgstr "Telefon"
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr "Klient"
@@ -2744,15 +2745,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr "Stan"
@@ -2781,7 +2782,7 @@ msgstr "Dostarczone części"
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2789,7 +2790,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3132,8 +3133,8 @@ msgstr "Zamówienie"
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
@@ -3152,8 +3153,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr "Cena zakupu"
@@ -4172,7 +4173,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr "Nazwa testu"
@@ -5325,7 +5326,7 @@ msgid "Result"
msgstr "Wynik"
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr "Data"
@@ -5337,51 +5338,9 @@ msgstr "Zaliczone"
msgid "Fail"
msgstr "Niezaliczone"
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr "Nieprawidłowa ilość"
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr "Ilość musi być większa niż zero"
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr "Data ważności"
@@ -5625,6 +5584,26 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+#, fuzzy
+#| msgid "Allocation quantity must be greater than zero"
+msgid "A list of stock items must be provided"
+msgstr "Alokowana ilość musi być większa niż zero"
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "Destination Location"
+msgid "Destination stock location"
+msgstr "Lokalizacja docelowa"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5662,7 +5641,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5852,7 +5831,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr "Ostatnia aktualizacja"
@@ -6034,7 +6013,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6055,104 +6034,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr "Utwórz nową lokalizację magazynową"
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr "Ilość nie może być ujemna"
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6590,7 +6569,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6785,7 +6764,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6973,8 +6952,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6982,7 +6961,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7336,7 +7315,7 @@ msgstr "Alokowana ilość musi być większa niż zero"
msgid "Quantity to receive"
msgstr "Ilość nie może być ujemna"
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7434,7 +7413,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7519,7 +7498,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7527,11 +7506,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7570,256 +7549,252 @@ msgstr "Cena jednostkowa"
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr "Dodaj stan"
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr "Dodaj"
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr "Dodano"
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
@@ -8327,6 +8302,12 @@ msgstr "Uprawnienie do edycji przedmiotów"
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
+#~ msgid "Invalid quantity value"
+#~ msgstr "Nieprawidłowa ilość"
+
+#~ msgid "Quantity must not be less than zero"
+#~ msgstr "Ilość musi być większa niż zero"
+
#~ msgid "Remove line"
#~ msgstr "Usuń linie"
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 3db768129b..e4136f4d4d 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr "Дублировать серийный номер: {n}"
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
@@ -121,7 +121,7 @@ msgstr "Комментарий к файлу"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr "Пользователь"
@@ -163,7 +163,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr "Название"
@@ -184,8 +184,8 @@ msgstr "Название"
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr "Описание"
@@ -576,8 +576,8 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr "Количество"
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr "Пометить сборку как завершенную"
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr "Расположение"
@@ -634,8 +635,8 @@ msgstr "Расположение укомплектованных частей"
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr "Статус"
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr "Детали"
@@ -862,11 +863,11 @@ msgstr "Ссылка на внешний URL"
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr "Заметки"
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1200,7 +1201,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1404,7 +1405,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1440,7 +1441,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1456,7 +1457,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2296,7 +2297,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2362,7 +2363,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2436,7 +2437,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2506,7 +2507,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2737,15 +2738,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2774,7 +2775,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2782,7 +2783,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3125,8 +3126,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3145,8 +3146,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4163,7 +4164,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5316,7 +5317,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5328,51 +5329,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5616,6 +5575,24 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "No matching stock item found"
+msgid "Destination stock location"
+msgstr "Не найдено совпадающих элементов инвентаря"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5653,7 +5630,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5843,7 +5820,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6025,7 +6002,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6046,104 +6023,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6581,7 +6558,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6776,7 +6753,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6956,8 +6933,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6965,7 +6942,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7313,7 +7290,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7409,7 +7386,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7494,7 +7471,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7502,11 +7479,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7545,256 +7522,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 10ec46784b..851726561f 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr ""
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr ""
@@ -163,7 +163,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr ""
@@ -184,8 +184,8 @@ msgstr ""
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr ""
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr ""
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr ""
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr ""
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1198,7 +1199,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1400,7 +1401,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1436,7 +1437,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1452,7 +1453,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2292,7 +2293,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2358,7 +2359,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2432,7 +2433,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2502,7 +2503,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2733,15 +2734,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2770,7 +2771,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2778,7 +2779,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3121,8 +3122,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3141,8 +3142,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4157,7 +4158,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5310,7 +5311,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5322,51 +5323,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5610,6 +5569,22 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5647,7 +5622,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5837,7 +5812,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6019,7 +5994,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6040,104 +6015,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6575,7 +6550,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6770,7 +6745,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6940,8 +6915,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6949,7 +6924,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7293,7 +7268,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7385,7 +7360,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7470,7 +7445,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7478,11 +7453,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7521,256 +7496,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index f2e1521835..6cd78d69bf 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr ""
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr ""
@@ -163,7 +163,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr ""
@@ -184,8 +184,8 @@ msgstr ""
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr ""
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr ""
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr ""
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr ""
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1198,7 +1199,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1400,7 +1401,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1436,7 +1437,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1452,7 +1453,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2292,7 +2293,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2358,7 +2359,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2432,7 +2433,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2502,7 +2503,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2733,15 +2734,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2770,7 +2771,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2778,7 +2779,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3121,8 +3122,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3141,8 +3142,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4157,7 +4158,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5310,7 +5311,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5322,51 +5323,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5610,6 +5569,22 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5647,7 +5622,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5837,7 +5812,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6019,7 +5994,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6040,104 +6015,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6575,7 +6550,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6770,7 +6745,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6940,8 +6915,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6949,7 +6924,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7293,7 +7268,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7385,7 +7360,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7470,7 +7445,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7478,11 +7453,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7521,256 +7496,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 0e754e2595..0f8e229554 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr "Tekrarlanan seri {n}"
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
@@ -121,7 +121,7 @@ msgstr "Dosya yorumu"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr "Kullanıcı"
@@ -163,7 +163,7 @@ msgstr "Geçersiz seçim"
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr "Adı"
@@ -184,8 +184,8 @@ msgstr "Adı"
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr "Açıklama"
@@ -576,8 +576,8 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr "Miktar"
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr "Yapım işini tamamlandı olarak işaretle"
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr "Konum"
@@ -634,8 +635,8 @@ msgstr "Tamamlanmış parçaların konumu"
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr "Durum"
@@ -733,8 +734,8 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr "Parça"
@@ -862,11 +863,11 @@ msgstr "Harici URL'ye bağlantı"
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr "Notlar"
@@ -932,7 +933,7 @@ msgstr "Yapım işi için tahsis edilen parçalar"
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr "Stok Kalemi"
@@ -1209,7 +1210,7 @@ msgstr "Hedef konumu belirtilmedi"
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1417,7 +1418,7 @@ msgid "Build Order Details"
msgstr "Yapım İşi Emri Detayları"
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr "Detaylar"
@@ -1453,7 +1454,7 @@ msgstr "Yapım İşi Çıktısı Oluştur"
msgid "Maximum output quantity is "
msgstr "Maksimum çıktı miktarı "
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
@@ -1469,7 +1470,7 @@ msgstr "Yapım İşi Çıktısı Sil"
msgid "Confirm unallocation of build stock"
msgstr "Yapım işi stoku tahsisinin iptalini onayla"
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr "Onay kutusunu işaretleyin"
@@ -2309,7 +2310,7 @@ msgid "Does this company manufacture parts?"
msgstr "Bu şirket üretim yapıyor mu?"
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr "Para birimi"
@@ -2375,7 +2376,7 @@ msgstr "Parametre adı"
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr "Değer"
@@ -2449,7 +2450,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr "Paketleme"
@@ -2519,7 +2520,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr "Müşteri"
@@ -2750,15 +2751,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr "Stok"
@@ -2787,7 +2788,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Stok Kalemleri"
@@ -2795,7 +2796,7 @@ msgstr "Stok Kalemleri"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
@@ -3138,8 +3139,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3158,8 +3159,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4178,7 +4179,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr "Test Adı"
@@ -5331,7 +5332,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5343,51 +5344,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr "{n} öge için stok güncellendi"
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5631,6 +5590,26 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+#, fuzzy
+#| msgid "Allocation quantity must be greater than zero"
+msgid "A list of stock items must be provided"
+msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "Destination Location"
+msgid "Destination stock location"
+msgstr "Hedef Konum"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5668,7 +5647,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5858,7 +5837,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek"
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6040,7 +6019,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr "Stok Kalemine Dönüştür"
@@ -6061,104 +6040,104 @@ msgstr "Bu işlem kolayca geri alınamaz"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr "Stok konumunu düzenle"
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr "Sahip gerekli (sahip kontrolü etkinleştirildi)"
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr "Stok Konumu QR Kodu"
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr "Geçerli bir konum belirtiniz"
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr "Stok ayarlamasını onayla"
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr "Yeni Stok konumu oluştur"
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr "Stoku Seri Numarala"
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr "Stok Konumunu Sil"
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6596,7 +6575,7 @@ msgid "Select Test Report Template"
msgstr "Test Raporu Şablonu Seç"
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6791,7 +6770,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6979,8 +6958,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6988,7 +6967,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7340,7 +7319,7 @@ msgstr "Stok kalemi seçilmeli"
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7438,7 +7417,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7523,7 +7502,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7531,11 +7510,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7574,256 +7553,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr "Stok konumu ayarlanmadı"
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr "konumlar"
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr "Tanımsız konum"
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr "Konum artık yok"
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr "Seri No"
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
@@ -8331,6 +8306,9 @@ msgstr ""
msgid "Permission to delete items"
msgstr ""
+#~ msgid "Updated stock for {n} items"
+#~ msgstr "{n} öge için stok güncellendi"
+
#~ 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"
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 259607cd18..ba3e889410 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr ""
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr ""
@@ -163,7 +163,7 @@ msgstr ""
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr ""
@@ -184,8 +184,8 @@ msgstr ""
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr ""
@@ -576,8 +576,8 @@ msgstr ""
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr ""
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr ""
@@ -634,8 +635,8 @@ msgstr ""
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr ""
@@ -733,8 +734,8 @@ msgstr ""
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr ""
@@ -862,11 +863,11 @@ msgstr ""
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr ""
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr ""
@@ -1198,7 +1199,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1400,7 +1401,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1436,7 +1437,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1452,7 +1453,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2292,7 +2293,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2358,7 +2359,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2432,7 +2433,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2502,7 +2503,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2733,15 +2734,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2770,7 +2771,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2778,7 +2779,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3121,8 +3122,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3141,8 +3142,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4157,7 +4158,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5310,7 +5311,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5322,51 +5323,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5610,6 +5569,22 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5647,7 +5622,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5837,7 +5812,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6019,7 +5994,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6040,104 +6015,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6575,7 +6550,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6770,7 +6745,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6940,8 +6915,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6949,7 +6924,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7293,7 +7268,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7385,7 +7360,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7470,7 +7445,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7478,11 +7453,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7521,256 +7496,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 6a23068896..c6e34e1da1 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 07:03+0000\n"
+"POT-Creation-Date: 2021-10-05 22:53+0000\n"
"PO-Revision-Date: 2021-09-12 13:44\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -74,7 +74,7 @@ msgid "Duplicate serial: {n}"
msgstr "重复的序列号: {n}"
#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1363
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "提供的数量无效"
@@ -121,7 +121,7 @@ msgstr "文件注释"
#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
#: common/models.py:994 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1686
msgid "User"
msgstr "用户"
@@ -163,7 +163,7 @@ msgstr "选择无效"
#: 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
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/stock.js:1479
msgid "Name"
msgstr "名称"
@@ -184,8 +184,8 @@ msgstr "名称"
#: templates/js/translated/order.js:785 templates/js/translated/order.js:1009
#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:836
+#: templates/js/translated/stock.js:1491 templates/js/translated/stock.js:1536
msgid "Description"
msgstr "描述信息"
@@ -576,8 +576,8 @@ msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
#: templates/js/translated/model_renderers.js:74
#: templates/js/translated/order.js:821 templates/js/translated/order.js:1123
#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1671
+#: templates/js/translated/stock.js:1846
msgid "Quantity"
msgstr "库存数"
@@ -614,14 +614,15 @@ msgid "Mark build as complete"
msgstr "标记生产已完成"
#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/templates/stock/item_base.html:299
+#: stock/forms.py:280 stock/serializers.py:553
+#: 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:288
#: templates/js/translated/build.js:639 templates/js/translated/order.js:302
#: templates/js/translated/order.js:1108 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
+#: templates/js/translated/stock.js:200 templates/js/translated/stock.js:938
+#: templates/js/translated/stock.js:1563
msgid "Location"
msgstr "所在地"
@@ -634,8 +635,8 @@ msgstr "已完成部件所在地"
#: order/serializers.py:238 stock/templates/stock/item_base.html:422
#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1240
#: templates/js/translated/order.js:385 templates/js/translated/order.js:629
-#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:917
-#: templates/js/translated/stock.js:1644 templates/js/translated/stock.js:1866
+#: templates/js/translated/order.js:1014 templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:1640 templates/js/translated/stock.js:1862
msgid "Status"
msgstr "状态"
@@ -733,8 +734,8 @@ msgstr "此次生生匹配的订单"
#: templates/js/translated/build.js:1471 templates/js/translated/company.js:488
#: templates/js/translated/company.js:745 templates/js/translated/order.js:380
#: templates/js/translated/order.js:770 templates/js/translated/part.js:705
-#: templates/js/translated/part.js:875 templates/js/translated/stock.js:201
-#: templates/js/translated/stock.js:797 templates/js/translated/stock.js:1838
+#: templates/js/translated/part.js:875 templates/js/translated/stock.js:198
+#: templates/js/translated/stock.js:793 templates/js/translated/stock.js:1834
msgid "Part"
msgstr "部件"
@@ -862,11 +863,11 @@ msgstr "链接到外部 URL"
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:903 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/order.js:903 templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:1057
msgid "Notes"
msgstr "备注"
@@ -929,7 +930,7 @@ msgstr ""
#: templates/js/translated/build.js:276 templates/js/translated/build.js:281
#: templates/js/translated/build.js:965 templates/js/translated/build.js:1327
#: templates/js/translated/order.js:1096 templates/js/translated/order.js:1101
-#: templates/js/translated/stock.js:1626
+#: templates/js/translated/stock.js:1622
msgid "Stock Item"
msgstr "库存项"
@@ -1202,7 +1203,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:927 templates/js/translated/stock.js:1869
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1410,7 +1411,7 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1551
msgid "Details"
msgstr ""
@@ -1446,7 +1447,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
@@ -1462,7 +1463,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
@@ -2302,7 +2303,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:156
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
@@ -2368,7 +2369,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:576
+#: templates/js/translated/stock.js:572
msgid "Value"
msgstr ""
@@ -2442,7 +2443,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1053
msgid "Packaging"
msgstr ""
@@ -2512,7 +2513,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:94 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
#: templates/js/translated/company.js:328 templates/js/translated/order.js:991
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1604
msgid "Customer"
msgstr ""
@@ -2743,15 +2744,15 @@ 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:57
+#: part/templates/part/navbar.html:38 stock/api.py:51
#: 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
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:199
+#: templates/js/translated/stock.js:846 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2780,7 +2781,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1503
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2788,7 +2789,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1010
msgid "Supplier Part"
msgstr ""
@@ -3131,8 +3132,8 @@ msgstr ""
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:590 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:590 templates/js/translated/stock.js:987
+#: templates/js/translated/stock.js:1585
msgid "Purchase Order"
msgstr ""
@@ -3151,8 +3152,8 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:148 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1041
msgid "Purchase Price"
msgstr ""
@@ -4171,7 +4172,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:552
msgid "Test Name"
msgstr ""
@@ -5324,7 +5325,7 @@ msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:1519
msgid "Date"
msgstr ""
@@ -5336,51 +5337,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:160
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:176
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:182
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:192
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:197
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:225
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:261 stock/api.py:294
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:284
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:304
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:963
msgid "Expiry Date"
msgstr ""
@@ -5624,6 +5583,26 @@ msgstr ""
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+#, fuzzy
+#| msgid "Allocation quantity must be greater than zero"
+msgid "A list of stock items must be provided"
+msgstr "分配数量必须大于0"
+
+#: stock/serializers.py:554
+#, fuzzy
+#| msgid "Destination Location"
+msgid "Destination stock location"
+msgstr "目标地点"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5661,7 +5640,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5851,7 +5830,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:976
msgid "Last Updated"
msgstr ""
@@ -6033,7 +6012,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6054,104 +6033,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:338
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6589,7 +6568,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:314
msgid "Select Stock Items"
msgstr ""
@@ -6784,7 +6763,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:290
msgid "Remove stock item"
msgstr ""
@@ -6968,8 +6947,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1178 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:779
+#: templates/js/translated/stock.js:1473
msgid "Select"
msgstr ""
@@ -6977,7 +6956,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1259 templates/js/translated/stock.js:1692
msgid "No user information"
msgstr ""
@@ -7329,7 +7308,7 @@ msgstr "分配数量必须大于0"
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1364
+#: templates/js/translated/order.js:314 templates/js/translated/stock.js:1360
msgid "Stock Status"
msgstr ""
@@ -7425,7 +7404,7 @@ msgstr ""
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
@@ -7510,7 +7489,7 @@ msgstr ""
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1497
msgid "Path"
msgstr ""
@@ -7518,11 +7497,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:510
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:511
msgid "Delete test result"
msgstr ""
@@ -7561,256 +7540,252 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
+#: templates/js/translated/stock.js:96
msgid "Format"
msgstr ""
-#: templates/js/translated/stock.js:100
+#: templates/js/translated/stock.js:97
msgid "Select file format"
msgstr ""
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:121
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:122
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:164
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:165
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:171
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:172
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:176
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:177
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:181
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:182 users/models.py:190
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:186 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:275
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:315
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:473
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:475
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:480
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:506
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:532
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:580
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:687
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:691
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:699
+#: templates/js/translated/stock.js:695
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:699
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:705
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:861
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:866
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:869
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:873
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:875
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:879
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:883
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:890
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:892
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:894
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:898
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:952
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1025
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1063
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1084 templates/js/translated/stock.js:1132
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1172
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1199
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1201
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1375
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1389
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1390
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1529
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1576
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1595
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1614
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1632
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1655
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1663
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1704
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1705
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1829
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1852
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1880
msgid "Uninstall Stock Item"
msgstr ""