diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index e1e9574e65..6d43eccbe6 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-01 22:35+0000\n"
-"PO-Revision-Date: 2021-07-01 22:38\n"
+"POT-Creation-Date: 2021-07-03 12:15+0000\n"
+"PO-Revision-Date: 2021-07-03 12:44\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -29,14 +29,14 @@ msgstr "Keine Aktion angegeben"
msgid "No matching action found"
msgstr "Keine passende Aktion gefunden"
-#: InvenTree/fields.py:84
+#: InvenTree/fields.py:99
msgid "Enter date"
msgstr "Datum eingeben"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
-#: order/forms.py:75 part/forms.py:134
+#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
+#: order/forms.py:74 part/forms.py:118 templates/js/forms.js:486
msgid "Confirm"
msgstr "Bestätigen"
@@ -77,8 +77,8 @@ msgstr "Kategorie auswählen"
msgid "Duplicate serial: {n}"
msgstr "Doppelte Seriennummer: {n}"
-#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
-#: stock/views.py:1795
+#: InvenTree/helpers.py:403 order/models.py:311 order/models.py:421
+#: stock/views.py:1627
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
@@ -106,49 +106,53 @@ msgstr "Keine Seriennummern gefunden"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
-#: InvenTree/models.py:59 stock/models.py:1758
+#: InvenTree/models.py:61 stock/models.py:1778
msgid "Attachment"
msgstr "Anhang"
-#: InvenTree/models.py:60
+#: InvenTree/models.py:62
msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
-#: InvenTree/models.py:62 templates/attachment_table.html:16
+#: InvenTree/models.py:64 templates/js/attachment.js:52
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:62
+#: InvenTree/models.py:64
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2043
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1179
+#: templates/js/stock.js:1193
msgid "User"
msgstr "Benutzer"
-#: InvenTree/models.py:72
+#: InvenTree/models.py:74
msgid "upload date"
msgstr "Hochladedatum"
-#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396
-#: label/models.py:102 part/models.py:671 part/models.py:2163
+#: InvenTree/models.py:102
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:414
+#: label/models.py:103 part/models.py:680 part/models.py:2192
#: part/templates/part/params.html:27 report/models.py:180
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/company.js:235 templates/js/part.js:118
-#: templates/js/part.js:642 templates/js/stock.js:972
+#: templates/js/company.js:359 templates/js/part.js:118
+#: templates/js/part.js:642 templates/js/stock.js:986
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:114 build/models.py:135
-#: build/templates/build/detail.html:21 company/models.py:339
-#: company/models.py:532 company/templates/company/detail.html:27
+#: InvenTree/models.py:125 build/models.py:139
+#: build/templates/build/detail.html:21 company/models.py:353
+#: company/models.py:554 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
-#: part/models.py:695 part/templates/part/detail.html:54
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:110
+#: order/models.py:154 order/templates/order/purchase_order_detail.html:174
+#: part/models.py:704 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
#: report/templates/report/inventree_build_order_base.html:118
@@ -156,39 +160,43 @@ msgstr "Name"
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
#: templates/js/build.js:834 templates/js/build.js:1102
-#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
+#: templates/js/company.js:125 templates/js/order.js:245
+#: templates/js/order.js:347 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
-#: templates/js/stock.js:557 templates/js/stock.js:984
-#: templates/js/stock.js:1029
+#: templates/js/stock.js:557 templates/js/stock.js:998
+#: templates/js/stock.js:1043
msgid "Description"
msgstr "Beschreibung"
-#: InvenTree/models.py:115
+#: InvenTree/models.py:126
msgid "Description (optional)"
msgstr "Beschreibung (optional)"
-#: InvenTree/models.py:123
+#: InvenTree/models.py:134
msgid "parent"
msgstr "Eltern"
-#: InvenTree/settings.py:504
+#: InvenTree/serializers.py:52
+msgid "Must be a valid number"
+msgstr ""
+
+#: InvenTree/settings.py:505
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:508
+#: InvenTree/settings.py:509
msgid "Turkish"
msgstr "Türkisch"
@@ -446,50 +454,48 @@ msgid "Order target date"
msgstr "geplantes Bestelldatum"
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
+#: build/templates/build/detail.html:121
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:881 templates/js/order.js:200
-#: templates/js/order.js:298
+#: templates/js/build.js:881 templates/js/order.js:262
+#: templates/js/order.js:365
msgid "Target Date"
msgstr "Zieldatum"
-#: build/forms.py:43 build/models.py:225
+#: build/forms.py:43 build/models.py:229
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1354
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:31 common/models.py:741
-#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
-#: order/forms.py:289 order/models.py:613 order/models.py:835
-#: order/templates/order/order_wizard/match_parts.html:30
+#: company/forms.py:124 company/templates/company/supplier_part_pricing.html:79
+#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:702
+#: order/models.py:941 order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/purchase_order_detail.html:179
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:162
-#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
-#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
-#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:203
-#: part/templates/part/part_pricing.html:16
-#: part/templates/part/sale_prices.html:85
+#: order/templates/order/purchase_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:80
+#: order/templates/order/sales_order_detail.html:87
+#: order/templates/order/sales_order_detail.html:172
+#: order/templates/order/sales_order_detail.html:244 part/forms.py:314
+#: part/forms.py:344 part/forms.py:360 part/forms.py:376 part/models.py:2330
+#: part/templates/part/part_pricing.html:16 part/templates/part/prices.html:377
+#: part/templates/part/prices.html:474
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308
+#: stock/forms.py:142 stock/forms.py:275
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
-#: templates/js/build.js:1112 templates/js/order.js:393
-#: templates/js/part.js:796 templates/js/stock.js:1164
-#: templates/js/stock.js:1383
+#: templates/js/build.js:1112 templates/js/model_renderers.js:43
+#: templates/js/order.js:460 templates/js/part.js:827 templates/js/part.js:949
+#: templates/js/part.js:1005 templates/js/stock.js:1178
+#: templates/js/stock.js:1397
msgid "Quantity"
msgstr "Anzahl"
@@ -501,7 +507,7 @@ msgstr "Anzahl der zu bauenden Teile"
msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
-#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:114 stock/forms.py:85
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -530,12 +536,12 @@ msgid "Mark build as complete"
msgstr "Bauauftrag als vollständig markieren"
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: stock/forms.py:347 stock/templates/stock/item_base.html:285
+#: stock/forms.py:314 stock/templates/stock/item_base.html:285
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:586 templates/js/order.js:378
-#: templates/js/stock.js:643 templates/js/stock.js:1056
+#: templates/js/build.js:586 templates/js/order.js:445
+#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr "Lagerort"
@@ -544,13 +550,13 @@ msgid "Location of completed parts"
msgstr "Lagerort der Endprodukte"
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:465
+#: build/templates/build/detail.html:59 order/models.py:545
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:868
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:630 templates/js/stock.js:1133
-#: templates/js/stock.js:1399
+#: templates/js/order.js:249 templates/js/order.js:352
+#: templates/js/stock.js:630 templates/js/stock.js:1147
+#: templates/js/stock.js:1413
msgid "Status"
msgstr "Status"
@@ -582,60 +588,60 @@ msgstr "Bauabbruch bestätigen"
msgid "Select quantity of stock to allocate"
msgstr "Menge der BestandsObjekte für Zuordnung auswählen"
-#: build/models.py:66 build/templates/build/build_base.html:9
+#: build/models.py:70 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:195
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/models.py:67 build/templates/build/index.html:8
+#: build/models.py:71 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
-#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:191
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
+#: templates/InvenTree/settings/tabs.html:34 users/models.py:44
msgid "Build Orders"
msgstr "Bauaufträge"
-#: build/models.py:127
+#: build/models.py:131
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:128 order/models.py:98 order/models.py:615
-#: order/templates/order/purchase_order_detail.html:174
-#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
+#: build/models.py:132 order/models.py:242 order/models.py:529
+#: order/models.py:709 order/templates/order/purchase_order_detail.html:201
+#: order/templates/order/sales_order_detail.html:239 part/models.py:2339
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr "Referenz"
-#: build/models.py:138
+#: build/models.py:142
msgid "Brief description of the build"
msgstr "Kurze Beschreibung des Baus"
-#: build/models.py:147 build/templates/build/build_base.html:163
+#: build/models.py:151 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr "Eltern-Bauauftrag"
-#: build/models.py:148
+#: build/models.py:152
msgid "BuildOrder to which this build is allocated"
msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
-#: build/models.py:153 build/templates/build/auto_allocate.html:16
+#: build/models.py:157 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:657 order/models.py:712
+#: build/templates/build/detail.html:26 company/models.py:689
+#: order/models.py:755 order/models.py:814
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:132
+#: order/templates/order/purchase_order_detail.html:159
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:214 part/models.py:321
-#: part/models.py:1975 part/models.py:1987 part/models.py:2002
-#: part/models.py:2020 part/models.py:2095 part/models.py:2191
-#: part/models.py:2277 part/templates/part/part_app_base.html:8
+#: order/templates/order/sales_order_detail.html:224 part/models.py:325
+#: part/models.py:1988 part/models.py:2004 part/models.py:2023
+#: part/models.py:2041 part/models.py:2120 part/models.py:2224
+#: part/models.py:2314 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
@@ -644,222 +650,222 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
#: templates/js/build.js:552 templates/js/build.js:839
-#: templates/js/build.js:1079 templates/js/company.js:140
-#: templates/js/company.js:339 templates/js/part.js:241
+#: templates/js/build.js:1079 templates/js/company.js:264
+#: templates/js/company.js:464 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
-#: templates/js/stock.js:1371
+#: templates/js/stock.js:1385
msgid "Part"
msgstr "Teil"
-#: build/models.py:161
+#: build/models.py:165
msgid "Select part to build"
msgstr "Teil für den Bauauftrag wählen"
-#: build/models.py:166
+#: build/models.py:170
msgid "Sales Order Reference"
msgstr "Auftrag Referenz"
-#: build/models.py:170
+#: build/models.py:174
msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
-#: build/models.py:175
+#: build/models.py:179
msgid "Source Location"
msgstr "Quell-Lagerort"
-#: build/models.py:179
+#: build/models.py:183
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)"
-#: build/models.py:184
+#: build/models.py:188
msgid "Destination Location"
msgstr "Ziel-Lagerort"
-#: build/models.py:188
+#: build/models.py:192
msgid "Select location where the completed items will be stored"
msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen"
-#: build/models.py:192
+#: build/models.py:196
msgid "Build Quantity"
msgstr "Bau-Anzahl"
-#: build/models.py:195
+#: build/models.py:199
msgid "Number of stock items to build"
msgstr "Anzahl der zu bauenden BestandsObjekt"
-#: build/models.py:199
+#: build/models.py:203
msgid "Completed items"
msgstr "Fertiggestellte Teile"
-#: build/models.py:201
+#: build/models.py:205
msgid "Number of stock items which have been completed"
msgstr "Anzahl der fertigen BestandsObjekte"
-#: build/models.py:205 part/templates/part/part_base.html:167
+#: build/models.py:209 part/templates/part/part_base.html:167
msgid "Build Status"
msgstr "Bauauftrags-Status"
-#: build/models.py:209
+#: build/models.py:213
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:213 stock/models.py:462
+#: build/models.py:217 stock/models.py:470
msgid "Batch Code"
msgstr "Losnummer"
-#: build/models.py:217
+#: build/models.py:221
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:220 order/models.py:104 part/models.py:867
-#: part/templates/part/detail.html:126 templates/js/order.js:293
+#: build/models.py:224 order/models.py:158 part/models.py:876
+#: part/templates/part/detail.html:126 templates/js/order.js:360
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:224 order/models.py:471
+#: build/models.py:228 order/models.py:551
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
-#: build/models.py:228 order/models.py:217 templates/js/build.js:886
+#: build/models.py:232 order/models.py:284 templates/js/build.js:886
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
-#: build/models.py:234
+#: build/models.py:238
msgid "completed by"
msgstr "Fertiggestellt von"
-#: build/models.py:242
+#: build/models.py:246
msgid "Issued by"
msgstr "Aufgegeben von"
-#: build/models.py:243
+#: build/models.py:247
msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
-#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:118
+#: build/models.py:255 build/templates/build/build_base.html:184
+#: build/templates/build/detail.html:105 order/models.py:172
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:871
+#: order/templates/order/sales_order_base.html:140 part/models.py:880
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
-#: build/models.py:252
+#: build/models.py:256
msgid "User responsible for this build order"
msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
-#: build/models.py:257 build/templates/build/detail.html:91
+#: build/models.py:261 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
#: company/templates/company/manufacturer_part_detail.html:28
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:456 stock/templates/stock/item_base.html:345
+#: stock/models.py:464 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:258 part/models.py:729 stock/models.py:458
+#: build/models.py:262 part/models.py:738 stock/models.py:466
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
-#: build/models.py:262 build/templates/build/navbar.html:53
-#: company/models.py:132 company/models.py:539
+#: build/models.py:266 build/templates/build/navbar.html:53
+#: company/models.py:141 company/models.py:561
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:122
-#: order/models.py:617 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:176
+#: order/models.py:711 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/purchase_order_detail.html:243
-#: order/templates/order/sales_order_detail.html:309
+#: order/templates/order/purchase_order_detail.html:270
+#: order/templates/order/sales_order_detail.html:319
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:145
+#: order/templates/order/so_navbar.html:36 part/models.py:865
+#: part/templates/part/navbar.html:133
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
+#: stock/forms.py:140 stock/forms.py:284 stock/forms.py:316 stock/forms.py:344
+#: stock/models.py:536 stock/models.py:1678 stock/models.py:1784
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:713
msgid "Notes"
msgstr "Notizen"
-#: build/models.py:263
+#: build/models.py:267
msgid "Extra build notes"
msgstr "Extranotizen für den Bauauftrag"
-#: build/models.py:740
+#: build/models.py:744
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
-#: build/models.py:743
+#: build/models.py:747
msgid "Build output is already completed"
msgstr "Endprodukt bereits hergstellt"
-#: build/models.py:746
+#: build/models.py:750
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:1152
+#: build/models.py:1160
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr "Bauauftrags-Objekt muss für Bauauftrag, Lager-Objekt und installiert_in eindeutig sein"
-#: build/models.py:1177
+#: build/models.py:1185
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist"
-#: build/models.py:1181
+#: build/models.py:1189
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr "Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten"
-#: build/models.py:1188 order/models.py:809
+#: build/models.py:1196 order/models.py:915
msgid "StockItem is over-allocated"
msgstr "Zu viele BestandsObjekt zugewiesen"
-#: build/models.py:1192 order/models.py:812
+#: build/models.py:1200 order/models.py:918
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1196
+#: build/models.py:1204
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1256
+#: build/models.py:1264
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden"
-#: build/models.py:1316 stock/templates/stock/item_base.html:317
+#: build/models.py:1324 stock/templates/stock/item_base.html:317
#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr "Bauauftrag"
-#: build/models.py:1317
+#: build/models.py:1325
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1333 stock/templates/stock/item_base.html:8
+#: build/models.py:1341 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
#: templates/js/build.js:211 templates/js/build.js:929
-#: templates/js/order.js:366 templates/js/order.js:371
-#: templates/js/stock.js:1115
+#: templates/js/order.js:433 templates/js/order.js:438
+#: templates/js/stock.js:1129
msgid "Stock Item"
msgstr "BestandsObjekt"
-#: build/models.py:1334
+#: build/models.py:1342
msgid "Source stock item"
msgstr "Quell-BestandsObjekt"
-#: build/models.py:1347
+#: build/models.py:1355
msgid "Stock quantity to allocate to build"
msgstr "BestandsObjekt-Anzahl dem Bauauftrag zuweisen"
-#: build/models.py:1355
+#: build/models.py:1363
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1356
+#: build/models.py:1364
msgid "Destination stock item"
msgstr "Ziel-BestandsObjekt"
@@ -893,7 +899,7 @@ msgstr "Benötigte Teile bestellen"
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:724
#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr "Teile bestellen"
@@ -912,23 +918,52 @@ msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge"
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:160
+#: order/templates/order/sales_order_detail.html:85
+#: order/templates/order/sales_order_detail.html:170
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:450 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:570
+#: stock/models.py:458 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570 templates/js/model_renderers.js:41
msgid "Serial Number"
msgstr "Seriennummer"
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
-#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:124
+#: part/templates/part/navbar.html:127 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr "Anhänge"
+#: build/templates/build/attachments.html:51
+#: order/templates/order/so_attachments.html:79
+#: part/templates/part/attachments.html:81
+#: stock/templates/stock/item_attachments.html:81
+#: templates/attachment_table.html:6
+msgid "Add Attachment"
+msgstr "Anhang hinzufügen"
+
+#: build/templates/build/attachments.html:69
+#: order/templates/order/so_attachments.html:52
+#: part/templates/part/attachments.html:35
+#: stock/templates/stock/item_attachments.html:49
+msgid "Edit Attachment"
+msgstr "Anhang bearbeiten"
+
+#: build/templates/build/attachments.html:76
+#: order/templates/order/so_attachments.html:58
+#: part/templates/part/attachments.html:44
+#: stock/templates/stock/item_attachments.html:58
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/attachments.html:77
+#: order/templates/order/so_attachments.html:59
+#: part/templates/part/attachments.html:45
+#: stock/templates/stock/item_attachments.html:59
+msgid "Delete Attachment"
+msgstr "Anhang löschen"
+
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
msgstr "Lagerbestand automatisch zuweisen"
@@ -989,8 +1024,8 @@ msgstr "Admin"
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
#: order/templates/order/sales_order_base.html:88
-#: templates/js/table_filters.js:245 templates/js/table_filters.js:264
-#: templates/js/table_filters.js:281
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:269
+#: templates/js/table_filters.js:286
msgid "Overdue"
msgstr "Überfällig"
@@ -1036,13 +1071,13 @@ msgid "Progress"
msgstr "Fortschritt"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:710
+#: build/templates/build/detail.html:84 order/models.py:812
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:279 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:279 templates/js/order.js:307
msgid "Sales Order"
msgstr "Auftrag"
@@ -1183,10 +1218,10 @@ msgstr "Ausgangs-Lager"
msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
-#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
-#: order/templates/order/purchase_order_detail.html:239
-#: order/templates/order/receive_parts.html:25 stock/forms.py:169
-#: stock/forms.py:375
+#: build/templates/build/detail.html:46 order/forms.py:88 order/models.py:771
+#: order/templates/order/purchase_order_detail.html:266
+#: order/templates/order/receive_parts.html:25 stock/forms.py:136
+#: stock/forms.py:342
msgid "Destination"
msgstr "Ziel-Lager"
@@ -1196,7 +1231,7 @@ msgstr "Ziel-Lagerort nicht angegeben"
#: build/templates/build/detail.html:70
#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638
-#: templates/js/stock.js:1406 templates/js/table_filters.js:112
+#: templates/js/stock.js:1420 templates/js/table_filters.js:112
#: templates/js/table_filters.js:206
msgid "Batch"
msgstr "Losnummer"
@@ -1251,7 +1286,7 @@ msgstr "Bauauftrag-details"
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
-#: templates/js/stock.js:1044
+#: templates/js/stock.js:1058
msgid "Details"
msgstr "Details"
@@ -1287,7 +1322,6 @@ msgstr "Bermerkungen bearbeiten"
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487
-#: stock/templates/stock/item_base.html:497
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr "Speichern"
@@ -1316,7 +1350,7 @@ msgstr "Endprodukt anlegen"
msgid "Maximum output quantity is "
msgstr "Maximale Endproduktmenge ist "
-#: build/views.py:184 stock/views.py:1821
+#: build/views.py:184 stock/views.py:1653
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
@@ -1332,7 +1366,7 @@ msgstr "Endprodukt entfernen"
msgid "Confirm unallocation of build stock"
msgstr "Entfernung von Bestands-Zuordnung bestätigen"
-#: build/views.py:281 build/views.py:371 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:346
msgid "Check the confirmation box"
msgstr "Bestätigungsbox bestätigen"
@@ -1429,31 +1463,6 @@ msgstr "Bestandszuordnung bearbeiten"
msgid "Updated Build Item"
msgstr "Bauobjekt aktualisiert"
-#: build/views.py:1070
-msgid "Add Build Order Attachment"
-msgstr "Bauauftrags-Anhang hinzufügen"
-
-#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
-#: stock/views.py:277
-msgid "Added attachment"
-msgstr "Anhang hinzugefügt"
-
-#: build/views.py:1119 order/views.py:196 order/views.py:217
-msgid "Edit Attachment"
-msgstr "Anhang bearbeiten"
-
-#: build/views.py:1129 order/views.py:200 order/views.py:221
-msgid "Attachment updated"
-msgstr "Anhang aktualisiert"
-
-#: build/views.py:1139 order/views.py:236 order/views.py:250
-msgid "Delete Attachment"
-msgstr "Anhang löschen"
-
-#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
-msgid "Deleted attachment"
-msgstr "Anhang gelöscht"
-
#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr "Dateiformat nicht unterstützt: {ext.upper()}"
@@ -1470,7 +1479,7 @@ msgstr "Fehler beim Lesen der Datei (falsche Größe)"
msgid "Error reading file (data could be corrupted)"
msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)"
-#: common/forms.py:34 templates/attachment_table.html:15
+#: common/forms.py:34 templates/js/attachment.js:42
msgid "File"
msgstr "Datei"
@@ -1503,7 +1512,7 @@ msgstr "Name der Instanz verwenden"
msgid "Use the instance name in the title-bar"
msgstr "Den Namen der Instanz in der Titelleiste verwenden"
-#: common/models.py:72 company/models.py:94 company/models.py:95
+#: common/models.py:72 company/models.py:99 company/models.py:100
msgid "Company name"
msgstr "Firmenname"
@@ -1607,9 +1616,9 @@ msgstr "Aktuelle Teile-Stände"
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
-#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
-#: templates/js/table_filters.js:315
+#: common/models.py:160 part/models.py:2226 part/templates/part/detail.html:160
+#: report/models.py:186 stock/forms.py:226 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:320
msgid "Template"
msgstr "Vorlage"
@@ -1617,8 +1626,8 @@ msgstr "Vorlage"
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
+#: common/models.py:167 part/models.py:828 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:128 templates/js/table_filters.js:332
msgid "Assembly"
msgstr "Baugruppe"
@@ -1626,8 +1635,8 @@ msgstr "Baugruppe"
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:331
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:336
msgid "Component"
msgstr "Komponente"
@@ -1635,7 +1644,7 @@ msgstr "Komponente"
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:845 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr "Kaufbar"
@@ -1643,8 +1652,8 @@ msgstr "Kaufbar"
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:339
+#: common/models.py:188 part/models.py:850 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:344
msgid "Salable"
msgstr "Verkäuflich"
@@ -1652,8 +1661,8 @@ msgstr "Verkäuflich"
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
+#: common/models.py:195 part/models.py:840 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:348
msgid "Trackable"
msgstr "Nachverfolgbar"
@@ -1661,7 +1670,7 @@ msgstr "Nachverfolgbar"
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:860 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr "Virtuell"
@@ -1858,13 +1867,12 @@ msgstr "Nur Ganzzahl eingeben"
msgid "Key string must be unique"
msgstr "Schlüsseltext muss eindeutig sein"
-#: common/models.py:742 company/forms.py:190
+#: common/models.py:742 company/forms.py:125
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
-#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
+#: templates/js/part.js:832
msgid "Price"
msgstr "Preis"
@@ -1894,16 +1902,16 @@ msgstr "Angegebener Wert muss ein Wahrheitswert sein"
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:605
+#: order/templates/order/po_navbar.html:22 order/views.py:337
#: part/templates/part/bom_upload/upload_file.html:27
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:621
msgid "Upload File"
msgstr "Datei hochgeladen"
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:338 part/templates/part/bom_upload/select_fields.html:58
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr "Übereinstimmende Felder"
@@ -1928,269 +1936,277 @@ msgstr ""
msgid "Previous Step"
msgstr "Vorheriger Schritt"
-#: company/forms.py:37 company/models.py:142
-#: company/templates/company/detail.html:42
-msgid "Currency"
-msgstr "Währung"
-
-#: company/forms.py:38 company/models.py:144
-msgid "Default currency used for this company"
-msgstr "Standard-Währung für diese Firma"
-
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:26 part/forms.py:46
msgid "URL"
msgstr "URL"
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:27 part/forms.py:47
msgid "Image URL"
msgstr "Bild-URL"
-#: company/forms.py:132 templates/js/part.js:787
+#: company/forms.py:67 templates/js/part.js:940
msgid "Single Price"
msgstr "Einzelpreis"
-#: company/forms.py:133
+#: company/forms.py:68
msgid "Single quantity price"
msgstr "Preis für eine Einheit"
-#: company/forms.py:141 company/models.py:321
+#: company/forms.py:76 company/models.py:335
msgid "Select manufacturer"
msgstr "Hersteller auswählen"
-#: company/forms.py:147 company/models.py:328
+#: company/forms.py:82 company/models.py:342
msgid "Manufacturer Part Number"
msgstr "Hersteller-Teilenummer"
-#: company/forms.py:149 company/models.py:327
+#: company/forms.py:84 company/models.py:341
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:162 part/bom.py:171
-#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408
+#: order/templates/order/purchase_order_detail.html:189 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:305 templates/js/company.js:533
msgid "MPN"
msgstr "MPN"
-#: company/models.py:99
+#: company/models.py:104
msgid "Company description"
msgstr "Firmenbeschreibung"
-#: company/models.py:100
+#: company/models.py:105
msgid "Description of the company"
msgstr "Firmenbeschreibung"
-#: company/models.py:104 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:33 templates/js/company.js:60
+#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:129
msgid "Website"
msgstr "Website"
-#: company/models.py:104
+#: company/models.py:112
msgid "Company website URL"
msgstr "Firmenwebsite Adresse/URL"
-#: company/models.py:107 company/templates/company/company_base.html:77
+#: company/models.py:116 company/templates/company/company_base.html:77
msgid "Address"
msgstr "Adresse"
-#: company/models.py:108
+#: company/models.py:117
msgid "Company address"
msgstr "Firmenadresse"
-#: company/models.py:111
+#: company/models.py:120
msgid "Phone number"
msgstr "Kontakt-Tel."
-#: company/models.py:112
+#: company/models.py:121
msgid "Contact phone number"
msgstr "Kontakt-Telefon"
-#: company/models.py:115 company/templates/company/company_base.html:91
+#: company/models.py:124 company/templates/company/company_base.html:91
msgid "Email"
msgstr "Email"
-#: company/models.py:115
+#: company/models.py:124
msgid "Contact email address"
msgstr "Kontakt-Email"
-#: company/models.py:118 company/templates/company/company_base.html:98
+#: company/models.py:127 company/templates/company/company_base.html:98
msgid "Contact"
msgstr "Kontakt"
-#: company/models.py:119
+#: company/models.py:128
msgid "Point of contact"
msgstr "Anlaufstelle"
-#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:102 part/models.py:728
+#: company/models.py:130 company/models.py:347 company/models.py:548
+#: order/models.py:156 part/models.py:737
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/company.js:188 templates/js/company.js:419
+#: templates/js/company.js:312 templates/js/company.js:544
#: templates/js/part.js:498
msgid "Link"
msgstr "Link"
-#: company/models.py:121
+#: company/models.py:130
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:129 part/models.py:738
+#: company/models.py:138 part/models.py:747
msgid "Image"
msgstr "Bild"
-#: company/models.py:134
+#: company/models.py:143
msgid "is customer"
msgstr "ist Kunde"
-#: company/models.py:134
+#: company/models.py:143
msgid "Do you sell items to this company?"
msgstr "Verkaufen Sie Teile an diese Firma?"
-#: company/models.py:136
+#: company/models.py:145
msgid "is supplier"
msgstr "ist Zulieferer"
-#: company/models.py:136
+#: company/models.py:145
msgid "Do you purchase items from this company?"
msgstr "Kaufen Sie Teile von dieser Firma?"
-#: company/models.py:138
+#: company/models.py:147
msgid "is manufacturer"
msgstr "ist Hersteller"
-#: company/models.py:138
+#: company/models.py:147
msgid "Does this company manufacture parts?"
msgstr "Produziert diese Firma Teile?"
-#: company/models.py:305 company/models.py:497 stock/models.py:403
+#: company/models.py:151 company/serializers.py:259
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr "Währung"
+
+#: company/models.py:154
+msgid "Default currency used for this company"
+msgstr "Standard-Währung für diese Firma"
+
+#: company/models.py:319 company/models.py:519 stock/models.py:411
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr "Basisteil"
-#: company/models.py:309 company/models.py:501 order/views.py:1603
+#: company/models.py:323 company/models.py:523 order/views.py:1127
msgid "Select part"
msgstr "Teil auswählen"
-#: company/models.py:320 company/templates/company/detail.html:57
+#: company/models.py:334 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
#: part/bom.py:241 stock/templates/stock/item_base.html:352
-#: templates/js/company.js:44 templates/js/company.js:165
-#: templates/js/company.js:390
+#: templates/js/company.js:113 templates/js/company.js:289
+#: templates/js/company.js:515
msgid "Manufacturer"
msgstr "Hersteller"
-#: company/models.py:334
+#: company/models.py:348
msgid "URL for external manufacturer part link"
msgstr "Externe URL für das Herstellerteil"
-#: company/models.py:340
+#: company/models.py:354
msgid "Manufacturer part description"
msgstr "Teilbeschreibung des Herstellers"
-#: company/models.py:390 company/models.py:520
+#: company/models.py:408 company/models.py:542
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:362
msgid "Manufacturer Part"
msgstr "Herstellerteil"
-#: company/models.py:397
+#: company/models.py:415
msgid "Parameter name"
msgstr ""
-#: company/models.py:403 part/templates/part/params.html:28
+#: company/models.py:421 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
-#: templates/js/company.js:241 templates/js/stock.js:137
+#: stock/models.py:1771 templates/InvenTree/settings/header.html:8
+#: templates/js/company.js:365 templates/js/stock.js:137
msgid "Value"
msgstr "Wert"
-#: company/models.py:404
+#: company/models.py:422
msgid "Parameter value"
msgstr ""
-#: company/models.py:410 part/models.py:813 part/models.py:2165
+#: company/models.py:428 part/models.py:822 part/models.py:2194
#: part/templates/part/detail.html:106 part/templates/part/params.html:29
-#: templates/js/company.js:247
+#: templates/js/company.js:371
msgid "Units"
msgstr "Einheiten"
-#: company/models.py:411
+#: company/models.py:429
msgid "Parameter units"
msgstr ""
-#: company/models.py:507 company/templates/company/detail.html:62
+#: company/models.py:529 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:256
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
-#: templates/js/company.js:48 templates/js/company.js:364
-#: templates/js/order.js:170
+#: templates/js/company.js:117 templates/js/company.js:489
+#: templates/js/order.js:232
msgid "Supplier"
msgstr "Zulieferer"
-#: company/models.py:508
+#: company/models.py:530
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:513 company/templates/company/supplier_part_base.html:88
+#: company/models.py:535 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:153 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:180 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
-#: company/models.py:514
+#: company/models.py:536
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
-#: company/models.py:521
+#: company/models.py:543
msgid "Select manufacturer part"
msgstr "Herstellerteil auswählen"
-#: company/models.py:527
+#: company/models.py:549
msgid "URL for external supplier part link"
msgstr "Teil-URL des Zulieferers"
-#: company/models.py:533
+#: company/models.py:555
msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
-#: company/models.py:538 company/templates/company/supplier_part_base.html:116
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305
+#: company/models.py:560 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2342
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Notiz"
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
-#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:427 stock/templates/stock/item_base.html:310
-#: templates/js/stock.js:695
+#: company/models.py:566 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:435 stock/templates/stock/item_base.html:310
+#: templates/js/stock.js:709
msgid "Packaging"
msgstr "Verpackungen"
-#: company/models.py:544
+#: company/models.py:566
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:546 part/models.py:1608
+#: company/models.py:568 part/models.py:1617
msgid "multiple"
msgstr "Vielfache"
-#: company/models.py:546
+#: company/models.py:568
msgid "Order multiple"
msgstr "Mehrere bestellen"
+#: company/serializers.py:68
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:69
+msgid "Currency Code"
+msgstr ""
+
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
#: company/templates/company/navbar.html:65 templates/js/build.js:563
@@ -2199,7 +2215,7 @@ msgstr "Zugeordneter Bestand"
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:102
msgid "Company"
msgstr "Firma"
@@ -2213,7 +2229,7 @@ msgstr "Neues Bild hochladen"
msgid "Download image from URL"
msgstr "Bild von URL herunterladen"
-#: company/templates/company/company_base.html:46 order/views.py:313
+#: company/templates/company/company_base.html:46 templates/js/order.js:61
msgid "Create Purchase Order"
msgstr "Bestellung anlegen"
@@ -2221,7 +2237,8 @@ msgstr "Bestellung anlegen"
msgid "Edit company information"
msgstr "Firmeninformation bearbeiten"
-#: company/templates/company/company_base.html:56 company/views.py:326
+#: company/templates/company/company_base.html:56
+#: company/templates/company/company_base.html:126
msgid "Delete Company"
msgstr "Firma löschen"
@@ -2235,17 +2252,10 @@ msgstr "Firmendetails"
msgid "Phone"
msgstr "Telefon"
-#: company/templates/company/delete.html:7
-#, python-format
-msgid "Are you sure you want to delete company '%(name)s'?"
-msgstr "Sind Sie sicher, dass Sie die Firma '%(name)s' löschen wollen?"
-
-#: company/templates/company/delete.html:12
-#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be deleted."
-msgstr "Es gibt %(count)s Teile, die von diesem Unternehmen bezogen werden.
\n"
-"Wenn dieser Lieferant gelöscht wird, werden auch diese Zulieferer-Teile gelöscht."
+#: company/templates/company/company_base.html:166
+#: part/templates/part/part_base.html:307
+msgid "Upload Image"
+msgstr ""
#: company/templates/company/detail.html:21
msgid "Company Name"
@@ -2259,11 +2269,11 @@ msgstr "Keine Website angegeben"
msgid "Uses default currency"
msgstr "verwendet Standard-Währung"
-#: company/templates/company/detail.html:67 order/models.py:460
-#: order/templates/order/sales_order_base.html:94 stock/models.py:445
-#: stock/models.py:446 stock/templates/stock/item_base.html:262
-#: templates/js/company.js:40 templates/js/order.js:267
-#: templates/js/stock.js:1097
+#: company/templates/company/detail.html:67 order/models.py:540
+#: order/templates/order/sales_order_base.html:94 stock/models.py:453
+#: stock/models.py:454 stock/templates/stock/item_base.html:262
+#: templates/js/company.js:109 templates/js/order.js:329
+#: templates/js/stock.js:1111
msgid "Customer"
msgstr "Kunde"
@@ -2284,6 +2294,7 @@ msgstr "Neues Herstellerteil"
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
+#: company/templates/company/manufacturer_part_suppliers.html:46
#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
@@ -2306,26 +2317,25 @@ msgstr "Teile löschen"
msgid "Delete Parts"
msgstr "Teile löschen"
-#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:68
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:127
-#: templates/js/stock.js:1312
+#: templates/js/stock.js:1326
msgid "New Part"
msgstr "Neues Teil"
-#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:69
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr "Neues Teil hinzufügen"
-#: company/templates/company/detail_manufacturer_part.html:72
-#: company/views.py:71 part/templates/part/manufacturer.html:52
-#: part/templates/part/supplier.html:56
+#: company/templates/company/detail_manufacturer_part.html:74
+#: company/views.py:66 part/templates/part/manufacturer.html:52
+#: part/templates/part/supplier.html:55
msgid "New Manufacturer"
msgstr "Neuer Hersteller"
-#: company/templates/company/detail_manufacturer_part.html:73
-#: company/views.py:284
+#: company/templates/company/detail_manufacturer_part.html:75
msgid "Create new Manufacturer"
msgstr "Neuen Hersteller anlegen"
@@ -2336,7 +2346,7 @@ msgstr "Zulieferer-Bestand"
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:123 part/templates/part/category.html:137
-#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
+#: part/templates/part/stock.html:55 stock/templates/stock/location.html:163
msgid "Export"
msgstr "Exportieren"
@@ -2348,26 +2358,24 @@ msgstr "Zuliefererteile"
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:44
-#: order/templates/order/purchase_order_detail.html:50
+#: part/templates/part/part_base.html:429
msgid "Create new supplier part"
msgstr "Neues Zuliefererteil anlegen"
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1318
+#: part/templates/part/part_base.html:428 part/templates/part/supplier.html:17
+#: templates/js/stock.js:1332
msgid "New Supplier Part"
msgstr "Neues Zuliefererteil"
#: company/templates/company/detail_supplier_part.html:72
-#: company/templates/company/manufacturer_part_suppliers.html:82
-#: company/views.py:64 order/templates/order/purchase_orders.html:185
-#: part/templates/part/supplier.html:50
+#: company/templates/company/manufacturer_part_suppliers.html:96
+#: company/views.py:60 part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr "Neuer Zulieferer"
-#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:186
+#: company/templates/company/detail_supplier_part.html:73
msgid "Create new Supplier"
msgstr "Neuen Zulieferer anlegen"
@@ -2402,20 +2410,19 @@ msgstr "Herstellerteil-Details"
msgid "Internal Part"
msgstr "Internes Teil"
-#: company/templates/company/manufacturer_part_delete.html:6
-msgid "Are you sure you want to delete the following Manufacturer Parts?"
-msgstr "Sind Sie sicher, dass sie die folgenden Herstellerteile löschen möchten?"
+#: company/templates/company/manufacturer_part_base.html:125
+msgid "Edit Manufacturer Part"
+msgstr "Herstellerteil ändern"
-#: company/templates/company/manufacturer_part_delete.html:36
-#, python-format
-msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
-msgstr "Für dieses Herstellerteil sind %(count)s Lieferanten definiert. Wenn Sie es löschen, werden die folgenden Lieferantenteile ebenfalls gelöscht:"
+#: company/templates/company/manufacturer_part_base.html:134
+msgid "Delete Manufacturer Part"
+msgstr "Herstellerteil löschen"
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:87
-#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
-#: templates/navbar.html:35
+#: company/views.py:59 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 part/templates/part/prices.html:153
+#: templates/InvenTree/search.html:316 templates/navbar.html:35
msgid "Suppliers"
msgstr "Zulieferer"
@@ -2426,7 +2433,7 @@ msgstr "Herstellerteil-Bestand"
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:39 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:53
#: 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:128 templates/InvenTree/search.html:196
@@ -2452,9 +2459,11 @@ msgid "Delete supplier parts"
msgstr "Zuliefererteil entfernen"
#: company/templates/company/manufacturer_part_suppliers.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: company/templates/company/manufacturer_part_suppliers.html:142
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:191
+#: stock/views.py:855 templates/js/company.js:203 users/models.py:192
msgid "Delete"
msgstr "Löschen"
@@ -2472,11 +2481,27 @@ msgstr "Parameter"
msgid "New Parameter"
msgstr "Neuer Parameter"
-#: company/templates/company/manufacturer_part_suppliers.html:83
+#: company/templates/company/manufacturer_part_suppliers.html:48
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:80
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:97
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
msgstr "Neuen Zulieferer anlegen"
+#: company/templates/company/manufacturer_part_suppliers.html:127
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:139
+msgid "Delete Parameters"
+msgstr ""
+
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
msgid "Manufactured Parts"
@@ -2493,8 +2518,8 @@ msgstr "Zuliefererteile"
#: stock/templates/stock/location.html:136
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
-#: templates/InvenTree/search.html:198 templates/js/stock.js:996
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Teilbestand"
@@ -2504,11 +2529,11 @@ msgstr "Teilbestand"
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: part/templates/part/navbar.html:101 part/templates/part/navbar.html:104
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:236
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
-#: users/models.py:45
+#: users/models.py:46
msgid "Sales Orders"
msgstr "Aufträge"
@@ -2517,10 +2542,10 @@ msgstr "Aufträge"
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:213
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
-#: users/models.py:44
+#: users/models.py:45
msgid "Purchase Orders"
msgstr "Bestellungen"
@@ -2549,8 +2574,9 @@ msgid "New Sales Order"
msgstr "Neuer Auftrag"
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
-#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:420
+#: stock/templates/stock/item_base.html:374 templates/js/company.js:505
+#: templates/js/stock.js:690
msgid "Supplier Part"
msgstr "Zuliefererteil"
@@ -2595,459 +2621,401 @@ msgid "Order Part"
msgstr "Teil bestellen"
#: company/templates/company/supplier_part_pricing.html:11
+#: part/templates/part/navbar.html:74
msgid "Pricing Information"
msgstr "Preisinformationen ansehen"
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2918
+#: company/templates/company/supplier_part_pricing.html:19
+#: company/templates/company/supplier_part_pricing.html:118
+#: part/templates/part/prices.html:264 part/views.py:2788
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
#: company/templates/company/supplier_part_pricing.html:38
-#: part/templates/part/sale_prices.html:46
msgid "No price break information found"
msgstr "Keine Informationen zur Preisstaffel gefunden"
-#: company/templates/company/supplier_part_pricing.html:89
-#: part/templates/part/sale_prices.html:97
+#: company/templates/company/supplier_part_pricing.html:52 part/views.py:2850
+msgid "Delete Price Break"
+msgstr "Preisstaffel löschen"
+
+#: company/templates/company/supplier_part_pricing.html:66 part/views.py:2836
+msgid "Edit Price Break"
+msgstr "Preisstaffel bearbeiten"
+
+#: company/templates/company/supplier_part_pricing.html:91
msgid "Edit price break"
msgstr "Preisstaffel bearbeiten"
-#: company/templates/company/supplier_part_pricing.html:90
-#: part/templates/part/sale_prices.html:98
+#: company/templates/company/supplier_part_pricing.html:92
msgid "Delete price break"
msgstr "Preisstaffel löschen"
-#: company/views.py:70 part/templates/part/navbar.html:81
-#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
-#: templates/navbar.html:36
+#: company/views.py:65 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 part/templates/part/prices.html:157
+#: templates/InvenTree/search.html:306 templates/navbar.html:36
msgid "Manufacturers"
msgstr "Hersteller"
-#: company/views.py:77 templates/InvenTree/search.html:336
+#: company/views.py:71 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr "Kunden"
-#: company/views.py:78 order/templates/order/sales_orders.html:187
+#: company/views.py:72
msgid "New Customer"
msgstr "Neuer Kunde"
-#: company/views.py:86
+#: company/views.py:79
msgid "Companies"
msgstr "Firmen"
-#: company/views.py:87
+#: company/views.py:80
msgid "New Company"
msgstr "Neue Firma"
-#: company/views.py:169 part/views.py:1115
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr "Bild herunterladen"
-#: company/views.py:198 part/views.py:1147
+#: company/views.py:190 part/views.py:1039
msgid "Image size exceeds maximum allowable size for download"
msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads"
-#: company/views.py:205 part/views.py:1154
+#: company/views.py:197 part/views.py:1046
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Ungültige Antwort {code}"
-#: company/views.py:214 part/views.py:1163
+#: company/views.py:206 part/views.py:1055
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
-#: company/views.py:243
-msgid "Update Company Image"
-msgstr "Firmenbild aktualisieren"
-
-#: company/views.py:249
-msgid "Updated company image"
-msgstr "Aktualisiertes Firmenbild"
-
-#: company/views.py:259
-msgid "Edit Company"
-msgstr "Firma bearbeiten"
-
-#: company/views.py:264
-msgid "Edited company information"
-msgstr "Firmeninformation bearbeitet"
-
-#: company/views.py:287 order/templates/order/sales_orders.html:188
-msgid "Create new Customer"
-msgstr "Neuen Kunden anlegen"
-
-#: company/views.py:289
-msgid "Create new Company"
-msgstr "Neue Firma anlegen"
-
-#: company/views.py:316
-msgid "Created new company"
-msgstr "Neue Firma angelegt"
-
-#: company/views.py:332
-msgid "Company was deleted"
-msgstr "Firma gelöscht"
-
-#: company/views.py:357
-msgid "Edit Manufacturer Part"
-msgstr "Herstellerteil ändern"
-
-#: company/views.py:366
+#: company/views.py:251
msgid "Create New Manufacturer Part"
msgstr "Neues Herstellerteil anlegen"
-#: company/views.py:440
-msgid "Delete Manufacturer Part"
-msgstr "Herstellerteil löschen"
-
-#: company/views.py:514
-msgid "Add Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:548
-msgid "Edit Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:588
+#: company/views.py:334
msgid "Edit Supplier Part"
msgstr "Zuliefererteil bearbeiten"
-#: company/views.py:639 templates/js/stock.js:1319
+#: company/views.py:385 templates/js/stock.js:1333
msgid "Create new Supplier Part"
msgstr "Neues Zuliefererteil anlegen"
-#: company/views.py:783
+#: company/views.py:529
msgid "Delete Supplier Part"
msgstr "Zuliefererteil entfernen"
-#: company/views.py:860 part/views.py:2922
-msgid "Added new price break"
-msgstr "neue Preisstaffel hinzufügt"
-
-#: company/views.py:916 part/views.py:2966
-msgid "Edit Price Break"
-msgstr "Preisstaffel bearbeiten"
-
-#: company/views.py:931 part/views.py:2980
-msgid "Delete Price Break"
-msgstr "Preisstaffel löschen"
-
#: label/api.py:56 report/api.py:201
msgid "No valid objects provided to template"
msgstr "Keine korrekten Objekte für Vorlage gegeben"
-#: label/models.py:103
+#: label/models.py:104
msgid "Label name"
msgstr "Label Name"
-#: label/models.py:110
+#: label/models.py:111
msgid "Label description"
msgstr "Label Beschreibung"
-#: label/models.py:117 stock/forms.py:202
+#: label/models.py:118 stock/forms.py:169
msgid "Label"
msgstr "Label"
-#: label/models.py:118
+#: label/models.py:119
msgid "Label template file"
msgstr "Label-Vorlage-Datei"
-#: label/models.py:124 report/models.py:297
+#: label/models.py:125 report/models.py:297
msgid "Enabled"
msgstr "Aktiviert"
-#: label/models.py:125
+#: label/models.py:126
msgid "Label template is enabled"
msgstr "Label-Vorlage ist aktiviert"
-#: label/models.py:130
+#: label/models.py:131
msgid "Width [mm]"
msgstr "Breite [mm]"
-#: label/models.py:131
+#: label/models.py:132
msgid "Label width, specified in mm"
msgstr "Label-Breite in mm"
-#: label/models.py:137
+#: label/models.py:138
msgid "Height [mm]"
msgstr "Höhe [mm]"
-#: label/models.py:138
+#: label/models.py:139
msgid "Label height, specified in mm"
msgstr "Label-Höhe in mm"
-#: label/models.py:144 report/models.py:290
+#: label/models.py:145 report/models.py:290
msgid "Filename Pattern"
msgstr "Dateinamen-Muster"
-#: label/models.py:145
+#: label/models.py:146
msgid "Pattern for generating label filenames"
msgstr "Muster für die Erstellung von Label-Dateinamen"
-#: label/models.py:244 label/models.py:297
+#: label/models.py:249 label/models.py:306
msgid "Query filters (comma-separated list of key=value pairs"
msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: label/models.py:245 label/models.py:298 report/models.py:317
+#: label/models.py:250 label/models.py:307 report/models.py:317
#: report/models.py:440 report/models.py:474
msgid "Filters"
msgstr "Filter"
-#: order/forms.py:31 order/templates/order/order_base.html:47
+#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr "Bestellung aufgeben"
-#: order/forms.py:42 order/templates/order/order_base.html:54
+#: order/forms.py:41 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr "Bestellung als vollständig markieren"
-#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
+#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Bestellung stornieren"
-#: order/forms.py:75 order/templates/order/sales_order_base.html:58
+#: order/forms.py:74 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr "Bestellung versenden"
-#: order/forms.py:90
+#: order/forms.py:89
msgid "Receive parts to this location"
msgstr "Teile in diesen Lagerort empfangen"
-#: order/forms.py:112
-msgid "Purchase Order reference"
-msgstr "Bestellungs-Referenz"
-
-#: order/forms.py:119
-msgid "Target date for order delivery. Order will be overdue after this date."
-msgstr "Zieldatum für Auftrags-Lieferung."
-
-#: order/forms.py:147
-msgid "Enter sales order number"
-msgstr "Auftrag-Nummer eingeben"
-
-#: order/forms.py:154 order/models.py:472
-msgid "Target date for order completion. Order will be overdue after this date."
-msgstr "Zieldatum für Auftrags-Fertigstellung."
-
-#: order/forms.py:246
+#: order/forms.py:116
msgid "Enter stock item serial numbers"
msgstr "Seriennummern für BestandsObjekt eingeben"
-#: order/forms.py:252
+#: order/forms.py:122
msgid "Enter quantity of stock items"
msgstr "Menge der BestandsObjekt eingeben"
-#: order/models.py:98
-msgid "Order reference"
-msgstr "Bestell-Referenz"
-
-#: order/models.py:100
+#: order/models.py:154
msgid "Order description"
msgstr "Bestellungs-Beschreibung"
-#: order/models.py:102
+#: order/models.py:156
msgid "Link to external page"
msgstr "Link auf externe Seite"
-#: order/models.py:110 part/templates/part/detail.html:132
+#: order/models.py:164 part/templates/part/detail.html:132
msgid "Created By"
msgstr "Erstellt von"
-#: order/models.py:117
+#: order/models.py:171
msgid "User or group responsible for this order"
msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind"
-#: order/models.py:122
+#: order/models.py:176
msgid "Order notes"
msgstr "Bestell-Notizen"
-#: order/models.py:181 order/models.py:465
+#: order/models.py:243 order/models.py:530
+msgid "Order reference"
+msgstr "Bestell-Referenz"
+
+#: order/models.py:248 order/models.py:545
msgid "Purchase order status"
msgstr "Bestellungs-Status"
-#: order/models.py:190
+#: order/models.py:257
msgid "Company from which the items are being ordered"
msgstr "Firma bei der die Teile bestellt werden"
-#: order/models.py:193 order/templates/order/order_base.html:98
-#: templates/js/order.js:179
+#: order/models.py:260 order/templates/order/order_base.html:98
+#: templates/js/order.js:241
msgid "Supplier Reference"
msgstr "Zulieferer-Referenz"
-#: order/models.py:193
+#: order/models.py:260
msgid "Supplier order reference code"
msgstr "Zulieferer Bestellreferenz"
-#: order/models.py:200
+#: order/models.py:267
msgid "received by"
msgstr "Empfangen von"
-#: order/models.py:205
+#: order/models.py:272
msgid "Issue Date"
msgstr "Aufgabedatum"
-#: order/models.py:206
+#: order/models.py:273
msgid "Date order was issued"
msgstr "Datum an dem die Bestellung aufgegeben wurde"
-#: order/models.py:211
+#: order/models.py:278
msgid "Target Delivery Date"
msgstr "Ziel-Versanddatum"
-#: order/models.py:212
+#: order/models.py:279
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Geplantes Lieferdatum für Auftrag."
-#: order/models.py:218
+#: order/models.py:285
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:242 part/views.py:1853 stock/models.py:300
-#: stock/models.py:1015
+#: order/models.py:309 part/views.py:1730 stock/models.py:308
+#: stock/models.py:1023
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
-#: order/models.py:247
+#: order/models.py:314
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
-#: order/models.py:345
+#: order/models.py:412
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden"
-#: order/models.py:349
+#: order/models.py:416
msgid "Quantity must be an integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: order/models.py:351
+#: order/models.py:418
msgid "Quantity must be a positive number"
msgstr "Anzahl muss eine positive Zahl sein"
-#: order/models.py:461
+#: order/models.py:541
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:475 templates/js/order.js:303
+#: order/models.py:552
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr "Zieldatum für Auftrags-Fertigstellung."
+
+#: order/models.py:555 templates/js/order.js:370
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:482
+#: order/models.py:562
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:526
+#: order/models.py:606
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr "Bestellung kann nicht versendet werden weil er nicht anhängig ist"
-#: order/models.py:613
+#: order/models.py:703
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:615
+#: order/models.py:709
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:617
+#: order/models.py:711
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:643 order/models.py:710 templates/js/order.js:353
+#: order/models.py:741 order/models.py:812 templates/js/order.js:420
msgid "Order"
msgstr "Bestellung"
-#: order/models.py:644 order/templates/order/order_base.html:9
+#: order/models.py:742 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
-#: templates/js/stock.js:669 templates/js/stock.js:1078
+#: stock/templates/stock/item_base.html:324 templates/js/order.js:210
+#: templates/js/stock.js:669 templates/js/stock.js:1092
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/models.py:658
+#: order/models.py:756
msgid "Supplier part"
msgstr "Zuliefererteil"
-#: order/models.py:661 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:219
+#: order/models.py:759 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:246
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:661
+#: order/models.py:759
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:667 stock/models.py:537
-#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
+#: order/models.py:765 part/templates/part/prices.html:166 stock/models.py:545
+#: stock/templates/stock/item_base.html:331 templates/js/stock.js:704
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:668
+#: order/models.py:766
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:676
+#: order/models.py:774
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?"
-#: order/models.py:718 part/templates/part/navbar.html:110
-#: part/templates/part/order_prices.html:108
-#: part/templates/part/part_pricing.html:97
+#: order/models.py:820 part/templates/part/part_pricing.html:97
+#: part/templates/part/prices.html:103 part/templates/part/prices.html:278
msgid "Sale Price"
msgstr "Verkaufspreis"
-#: order/models.py:719
+#: order/models.py:821
msgid "Unit sale price"
msgstr "Stückverkaufspreis"
-#: order/models.py:794 order/models.py:796
+#: order/models.py:900 order/models.py:902
msgid "Stock item has not been assigned"
msgstr "BestandsObjekt wurde nicht zugewiesen"
-#: order/models.py:800
+#: order/models.py:906
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kann BestandsObjekt keiner Zeile mit einem anderen Teil hinzufügen"
-#: order/models.py:802
+#: order/models.py:908
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:805
+#: order/models.py:911
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:815
+#: order/models.py:921
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein"
-#: order/models.py:820
+#: order/models.py:926
msgid "Line"
msgstr "Position"
-#: order/models.py:831
+#: order/models.py:937
msgid "Item"
msgstr "Position"
-#: order/models.py:832
+#: order/models.py:938
msgid "Select stock item to allocate"
msgstr "BestandsObjekt für Zuordnung auswählen"
-#: order/models.py:835
+#: order/models.py:941
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
+#: order/serializers.py:139
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Sale price currency"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
#: templates/attachment_delete.html:5
@@ -3092,16 +3060,22 @@ msgstr "Bestellstatus"
msgid "Issued"
msgstr "Aufgegeben"
-#: order/templates/order/order_base.html:180
-#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/order_base.html:188
+msgid "Edit Purchase Order"
+msgstr "Bestellung bearbeiten"
+
+#: order/templates/order/order_base.html:199
+#: order/templates/order/purchase_order_detail.html:127
#: part/templates/part/category.html:217 part/templates/part/category.html:259
-#: stock/templates/stock/location.html:191 templates/js/stock.js:736
-#: templates/js/stock.js:1324
+#: part/templates/part/part_base.html:415
+#: stock/templates/stock/location.html:191 templates/js/stock.js:750
+#: templates/js/stock.js:1338
msgid "New Location"
msgstr "Neuer Lagerort"
-#: order/templates/order/order_base.html:181
-#: order/templates/order/purchase_order_detail.html:101
+#: order/templates/order/order_base.html:200
+#: order/templates/order/purchase_order_detail.html:128
+#: part/templates/part/part_base.html:416
#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr "Neuen Lagerort anlegen"
@@ -3254,7 +3228,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr "Bestellungen auswählen oder anlegen."
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.js:205 templates/js/order.js:308
+#: templates/js/order.js:267 templates/js/order.js:375
msgid "Items"
msgstr "Positionen"
@@ -3278,7 +3252,6 @@ msgid "Purchase Order Attachments"
msgstr "Bestellungs-Anhänge"
#: order/templates/order/po_lineitem_delete.html:5
-#: order/templates/order/so_lineitem_delete.html:5
msgid "Are you sure you wish to delete this line item?"
msgstr "Sind Sie sicher, dass Sie diese Position löschen möchten?"
@@ -3296,40 +3269,52 @@ msgid "Purchase Order Items"
msgstr "Bestellungs-Positionen"
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
-#: order/views.py:1410
+#: order/templates/order/purchase_order_detail.html:64
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:56
msgid "Add Line Item"
msgstr "Position hinzufügen"
-#: order/templates/order/purchase_order_detail.html:114
+#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/sales_order_detail.html:398
+msgid "Edit Line Item"
+msgstr "Position bearbeiten"
+
+#: order/templates/order/purchase_order_detail.html:110
+#: order/templates/order/sales_order_detail.html:408
+msgid "Delete Line Item"
+msgstr "Position löschen"
+
+#: order/templates/order/purchase_order_detail.html:141
msgid "No line items found"
msgstr "Keine Positionen gefunden"
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/purchase_order_detail.html:169
+#: order/templates/order/sales_order_detail.html:233
msgid "Total"
msgstr "Summe"
-#: order/templates/order/purchase_order_detail.html:191
-#: order/templates/order/sales_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:218
+#: order/templates/order/sales_order_detail.html:256 templates/js/part.js:807
+#: templates/js/part.js:996
msgid "Unit Price"
msgstr "Stück-Preis"
-#: order/templates/order/purchase_order_detail.html:198
-#: order/templates/order/sales_order_detail.html:253
+#: order/templates/order/purchase_order_detail.html:225
+#: order/templates/order/sales_order_detail.html:263
msgid "Total price"
msgstr "Gesamtpreis"
-#: order/templates/order/purchase_order_detail.html:255
-#: order/templates/order/sales_order_detail.html:359
+#: order/templates/order/purchase_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:369
msgid "Edit line item"
msgstr "Position bearbeiten"
-#: order/templates/order/purchase_order_detail.html:256
+#: order/templates/order/purchase_order_detail.html:283
msgid "Delete line item"
msgstr "Position löschen"
-#: order/templates/order/purchase_order_detail.html:261
+#: order/templates/order/purchase_order_detail.html:288
msgid "Receive line item"
msgstr "Position empfangen"
@@ -3344,7 +3329,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen"
#: order/templates/order/receive_parts.html:14 part/api.py:45
-#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/models.py:326 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:157
#: part/templates/part/category_navbar.html:25
#: part/templates/part/category_navbar.html:32
@@ -3352,7 +3337,7 @@ msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen"
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:40
+#: users/models.py:41
msgid "Parts"
msgstr "Teile"
@@ -3394,10 +3379,14 @@ msgstr "Packliste"
msgid "Sales Order Details"
msgstr "Auftragsdetails"
-#: order/templates/order/sales_order_base.html:100 templates/js/order.js:275
+#: order/templates/order/sales_order_base.html:100 templates/js/order.js:342
msgid "Customer Reference"
msgstr "Kundenreferenz"
+#: order/templates/order/sales_order_base.html:177
+msgid "Edit Sales Order"
+msgstr "Auftrag bearbeiten"
+
#: order/templates/order/sales_order_cancel.html:8
#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
@@ -3413,69 +3402,69 @@ msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar i
msgid "Sales Order Items"
msgstr "Auftrags-Positionen"
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: order/templates/order/sales_order_detail.html:105 templates/js/bom.js:358
#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr "Aktionen"
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: order/templates/order/sales_order_detail.html:112 templates/js/build.js:611
#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr "Bestands-Zuordnung bearbeiten"
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: order/templates/order/sales_order_detail.html:113 templates/js/build.js:613
#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr "Bestands-Zuordnung löschen"
-#: order/templates/order/sales_order_detail.html:176
+#: order/templates/order/sales_order_detail.html:186
msgid "No matching line items"
msgstr "Keine passenden Positionen gefunden"
-#: order/templates/order/sales_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:216
msgid "ID"
msgstr "ID"
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: order/templates/order/sales_order_detail.html:284 templates/js/build.js:676
#: templates/js/build.js:943
msgid "Allocated"
msgstr "Zugeordnet"
-#: order/templates/order/sales_order_detail.html:276
+#: order/templates/order/sales_order_detail.html:286
msgid "Fulfilled"
msgstr "Erledigt"
-#: order/templates/order/sales_order_detail.html:313
+#: order/templates/order/sales_order_detail.html:323
msgid "PO"
msgstr "PO"
-#: order/templates/order/sales_order_detail.html:343
+#: order/templates/order/sales_order_detail.html:353
msgid "Allocate serial numbers"
msgstr "Seriennummern zuweisen"
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
+#: order/templates/order/sales_order_detail.html:356 templates/js/build.js:739
msgid "Allocate stock"
msgstr "Lagerbestand zuweisen"
-#: order/templates/order/sales_order_detail.html:349
+#: order/templates/order/sales_order_detail.html:359
msgid "Purchase stock"
msgstr "Lagerbestand kaufen"
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: order/templates/order/sales_order_detail.html:363 templates/js/build.js:732
#: templates/js/build.js:1150
msgid "Build stock"
msgstr "Lagerbestand bauen"
-#: order/templates/order/sales_order_detail.html:356
-#: order/templates/order/sales_order_detail.html:465
+#: order/templates/order/sales_order_detail.html:366
+#: order/templates/order/sales_order_detail.html:485
msgid "Calculate price"
msgstr "Preis berechnen"
-#: order/templates/order/sales_order_detail.html:360
+#: order/templates/order/sales_order_detail.html:370
msgid "Delete line item "
msgstr "Position löschen "
-#: order/templates/order/sales_order_detail.html:471
+#: order/templates/order/sales_order_detail.html:491
msgid "Update Unit Price"
msgstr "Stückpreis aktualisieren"
@@ -3516,194 +3505,154 @@ msgstr "Diese Aktion wird die folgenden BestandsObjekt vom Auftrag entfernen"
msgid "Sales Order Attachments"
msgstr "Auftrags-Anhänge"
-#: order/views.py:106
-msgid "Add Purchase Order Attachment"
-msgstr "Bestellungs-Anhang hinzufügen"
-
-#: order/views.py:156
-msgid "Add Sales Order Attachment"
-msgstr "Auftrags-Anhang hinzufügen"
-
-#: order/views.py:348
-msgid "Create Sales Order"
-msgstr "Auftrag anlegen"
-
-#: order/views.py:383
-msgid "Edit Purchase Order"
-msgstr "Bestellung bearbeiten"
-
-#: order/views.py:403
-msgid "Edit Sales Order"
-msgstr "Auftrag bearbeiten"
-
-#: order/views.py:419
+#: order/views.py:151
msgid "Cancel Order"
msgstr "Bestellung stornieren"
-#: order/views.py:428 order/views.py:454
+#: order/views.py:160 order/views.py:186
msgid "Confirm order cancellation"
msgstr "Bestellstornierung bestätigen"
-#: order/views.py:431 order/views.py:457
+#: order/views.py:163 order/views.py:189
msgid "Order cannot be cancelled"
msgstr "Bestellung kann nicht verworfen werden"
-#: order/views.py:445
+#: order/views.py:177
msgid "Cancel sales order"
msgstr "Auftrag stornieren"
-#: order/views.py:471
+#: order/views.py:203
msgid "Issue Order"
msgstr "Bestellung aufgeben"
-#: order/views.py:480
+#: order/views.py:212
msgid "Confirm order placement"
msgstr "Bestellungstätigung bestätigen"
-#: order/views.py:490
+#: order/views.py:222
msgid "Purchase order issued"
msgstr "Bestellung plaziert"
-#: order/views.py:501
+#: order/views.py:233
msgid "Complete Order"
msgstr "Auftrag fertigstellen"
-#: order/views.py:517
+#: order/views.py:249
msgid "Confirm order completion"
msgstr "Fertigstellung bestätigen"
-#: order/views.py:528
+#: order/views.py:260
msgid "Purchase order completed"
msgstr "Bestellung als vollständig markieren"
-#: order/views.py:538
+#: order/views.py:270
msgid "Ship Order"
msgstr "Versenden"
-#: order/views.py:554
+#: order/views.py:286
msgid "Confirm order shipment"
msgstr "Versand bestätigen"
-#: order/views.py:560
+#: order/views.py:292
msgid "Could not ship order"
msgstr "Versand fehlgeschlagen"
-#: order/views.py:607
+#: order/views.py:339
msgid "Match Supplier Parts"
msgstr "Zuliefererteile zuordnen"
-#: order/views.py:804
+#: order/views.py:536
msgid "Receive Parts"
msgstr "Teile empfangen"
-#: order/views.py:874
+#: order/views.py:606
msgid "Items received"
msgstr "Anzahl empfangener Positionen"
-#: order/views.py:888
+#: order/views.py:620
msgid "No destination set"
msgstr "Kein Ziel gesetzt"
-#: order/views.py:933
+#: order/views.py:665
msgid "Error converting quantity to number"
msgstr "Fehler beim Konvertieren zu Zahl"
-#: order/views.py:939
+#: order/views.py:671
msgid "Receive quantity less than zero"
msgstr "Anzahl kleiner null empfangen"
-#: order/views.py:945
+#: order/views.py:677
msgid "No lines specified"
msgstr "Keine Zeilen angegeben"
-#: order/views.py:1018
+#: order/views.py:750
msgid "Update prices"
msgstr ""
-#: order/views.py:1276
+#: order/views.py:1008
#, python-brace-format
msgid "Ordered {n} parts"
msgstr "{n} Teile bestellt"
-#: order/views.py:1336
-msgid "Supplier part must be specified"
-msgstr "Zuliefererteil muss ausgewählt werden"
-
-#: order/views.py:1342
-msgid "Supplier must match for Part and Order"
-msgstr "Zulieferer muss zu Teil und Bestellung passen"
-
-#: order/views.py:1473 order/views.py:1491
-msgid "Edit Line Item"
-msgstr "Position bearbeiten"
-
-#: order/views.py:1507 order/views.py:1519
-msgid "Delete Line Item"
-msgstr "Position löschen"
-
-#: order/views.py:1512 order/views.py:1524
-msgid "Deleted line item"
-msgstr "Position gelöscht"
-
-#: order/views.py:1537
+#: order/views.py:1061
msgid "Allocate Serial Numbers"
msgstr "Seriennummern zuweisen"
-#: order/views.py:1582
+#: order/views.py:1106
#, python-brace-format
msgid "Allocated {n} items"
msgstr "{n} Positionen zugeordnet"
-#: order/views.py:1598
+#: order/views.py:1122
msgid "Select line item"
msgstr "Position auswählen"
-#: order/views.py:1629
+#: order/views.py:1153
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr "Kein passends Teil für Seriennummer {serial} gefunden"
-#: order/views.py:1639
+#: order/views.py:1163
#, python-brace-format
msgid "{serial} is not in stock"
msgstr "{serial} ist nicht auf Lager"
-#: order/views.py:1647
+#: order/views.py:1171
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr "{serial} bereits einem Auftrag zugeordnet"
-#: order/views.py:1701
+#: order/views.py:1225
msgid "Allocate Stock to Order"
msgstr "Lagerbestand dem Auftrag zuweisen"
-#: order/views.py:1775
+#: order/views.py:1299
msgid "Edit Allocation Quantity"
msgstr "Zuordnung bearbeiten"
-#: order/views.py:1790
+#: order/views.py:1314
msgid "Remove allocation"
msgstr "Zuordnung entfernen"
-#: order/views.py:1862
+#: order/views.py:1386
msgid "Sales order not found"
msgstr "Auftrag nicht gefunden"
-#: order/views.py:1868
+#: order/views.py:1392
msgid "Price not found"
msgstr "Preis nicht gefunden"
-#: order/views.py:1871
+#: order/views.py:1395
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr "Stückpreis für {part} auf {price} aktualisiert"
-#: order/views.py:1876
+#: order/views.py:1400
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert"
-#: part/bom.py:138 part/models.py:72 part/models.py:747
+#: part/bom.py:138 part/models.py:72 part/models.py:756
#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr "Standard-Lagerort"
@@ -3725,143 +3674,143 @@ msgstr "Fehler beim Lesen der Stückliste (ungültige Daten)"
msgid "Error reading BOM file (incorrect row size)"
msgstr "Fehler beim Lesen der Stückliste (ungültige Zeilengröße)"
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "File Format"
msgstr "Dateiformat"
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "Select output file format"
msgstr "Ausgabe-Dateiformat auswählen"
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Cascading"
msgstr "Kaskadierend"
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Download cascading / multi-level BOM"
msgstr "Kaskadierende Stückliste herunterladen"
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Levels"
msgstr "Ebenen"
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Select maximum number of BOM levels to export (0 = all levels)"
msgstr "Maximale Anzahl an Ebenen für Stückliste-Export auswählen (0 = alle Ebenen)"
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include Parameter Data"
msgstr "Parameter-Daten einschließen"
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include part parameters data in exported BOM"
msgstr "Teil-Parameter in Stückliste-Export einschließen"
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include Stock Data"
msgstr "Bestand einschließen"
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include part stock data in exported BOM"
msgstr "Teil-Bestand in Stückliste-Export einschließen"
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include Manufacturer Data"
msgstr "Herstellerdaten einschließen"
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include part manufacturer data in exported BOM"
msgstr "Teil-Herstellerdaten in Stückliste-Export einschließen"
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include Supplier Data"
msgstr "Zulieferer einschließen"
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include part supplier data in exported BOM"
msgstr "Zulieferer-Daten in Stückliste-Export einschließen"
-#: part/forms.py:122 part/models.py:2191
+#: part/forms.py:106 part/models.py:2224
msgid "Parent Part"
msgstr "Ausgangsteil"
-#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:107 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr "Teil für Stücklisten-Kopie auswählen"
-#: part/forms.py:129
+#: part/forms.py:113
msgid "Clear existing BOM items"
msgstr "Stücklisten-Position(en) löschen"
-#: part/forms.py:135
+#: part/forms.py:119
msgid "Confirm BOM duplication"
msgstr "Kopie von Stückliste bestätigen"
-#: part/forms.py:153
+#: part/forms.py:137
msgid "validate"
msgstr "kontrollieren"
-#: part/forms.py:153
+#: part/forms.py:137
msgid "Confirm that the BOM is correct"
msgstr "Bestätigen, dass die Stückliste korrekt ist"
-#: part/forms.py:165
+#: part/forms.py:149
msgid "BOM file"
msgstr "Stücklisten-Datei"
-#: part/forms.py:165
+#: part/forms.py:149
msgid "Select BOM file to upload"
msgstr "Stücklisten-Datei zum Upload auswählen"
-#: part/forms.py:184
+#: part/forms.py:168
msgid "Related Part"
msgstr "verknüpftes Teil"
-#: part/forms.py:203
+#: part/forms.py:175
msgid "Select part category"
msgstr "Teil-Kategorie wählen"
-#: part/forms.py:220
+#: part/forms.py:192
msgid "Duplicate all BOM data for this part"
msgstr "Stückliste für dieses Teil kopieren"
-#: part/forms.py:221
+#: part/forms.py:193
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: part/forms.py:226
+#: part/forms.py:198
msgid "Duplicate all parameter data for this part"
msgstr "Alle Parameter-Daten für dieses Teil kopieren"
-#: part/forms.py:227
+#: part/forms.py:199
msgid "Copy Parameters"
msgstr "Parameter kopieren"
-#: part/forms.py:232
+#: part/forms.py:204
msgid "Confirm part creation"
msgstr "Erstellen des Teils bestätigen"
-#: part/forms.py:237
+#: part/forms.py:209
msgid "Include category parameter templates"
msgstr "Kategorie Parameter-Vorlage einschließen"
-#: part/forms.py:242
+#: part/forms.py:214
msgid "Include parent categories parameter templates"
msgstr "Über-Kategorie Parameter-Vorlage einschließen"
-#: part/forms.py:322
+#: part/forms.py:294
msgid "Add parameter template to same level categories"
msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen"
-#: part/forms.py:326
+#: part/forms.py:298
msgid "Add parameter template to all categories"
msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
-#: part/forms.py:344 part/models.py:2286
+#: part/forms.py:316 part/models.py:2323
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/forms.py:373
+#: part/forms.py:345
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
@@ -3877,362 +3826,362 @@ msgstr "Standard Stichwörter"
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:82 part/models.py:2237
+#: part/models.py:86 part/models.py:2270
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
-#: part/models.py:83 part/templates/part/category.html:32
+#: part/models.py:87 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:39
+#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr "Teil-Kategorien"
-#: part/models.py:448 part/models.py:460
+#: part/models.py:457 part/models.py:469
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)"
-#: part/models.py:557
+#: part/models.py:566
msgid "Next available serial numbers are"
msgstr "Nächste verfügbare Seriennummern wären"
-#: part/models.py:561
+#: part/models.py:570
msgid "Next available serial number is"
msgstr "Nächste verfügbare Seriennummer ist"
-#: part/models.py:566
+#: part/models.py:575
msgid "Most recent serial number is"
msgstr "Die neuste Seriennummer ist"
-#: part/models.py:645
+#: part/models.py:654
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:670 part/templates/part/detail.html:22
+#: part/models.py:679 part/templates/part/detail.html:22
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:677
+#: part/models.py:686
msgid "Is Template"
msgstr "Ist eine Vorlage"
-#: part/models.py:678
+#: part/models.py:687
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:689
+#: part/models.py:698
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:690 part/templates/part/detail.html:60
+#: part/models.py:699 part/templates/part/detail.html:60
msgid "Variant Of"
msgstr "Variante von"
-#: part/models.py:696
+#: part/models.py:705
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: part/models.py:701 part/templates/part/category.html:82
+#: part/models.py:710 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: part/models.py:702
+#: part/models.py:711
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73
+#: part/models.py:718 part/models.py:2269 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:452
msgid "Category"
msgstr "Kategorie"
-#: part/models.py:710
+#: part/models.py:719
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:715 part/templates/part/detail.html:28
+#: part/models.py:724 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:87 templates/js/part.js:169
#: templates/js/part.js:296
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
-#: part/models.py:716
+#: part/models.py:725
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:722
+#: part/models.py:731
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199
+#: part/models.py:732 part/templates/part/detail.html:35 report/models.py:199
#: templates/js/part.js:173
msgid "Revision"
msgstr "Revision"
-#: part/models.py:745
+#: part/models.py:754
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:792 part/templates/part/detail.html:97
+#: part/models.py:801 part/templates/part/detail.html:97
msgid "Default Supplier"
msgstr "Standard Zulieferer"
-#: part/models.py:793
+#: part/models.py:802
msgid "Default supplier part"
msgstr "Standard Zuliefererteil"
-#: part/models.py:800
+#: part/models.py:809
msgid "Default Expiry"
msgstr "Standard Ablaufzeit"
-#: part/models.py:801
+#: part/models.py:810
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Lagerbestand dieses Teils"
-#: part/models.py:806 part/templates/part/detail.html:113
+#: part/models.py:815 part/templates/part/detail.html:113
msgid "Minimum Stock"
msgstr "Minimaler Lagerbestand"
-#: part/models.py:807
+#: part/models.py:816
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Lagerbestand"
-#: part/models.py:814
+#: part/models.py:823
msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil"
-#: part/models.py:820
+#: part/models.py:829
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:826
+#: part/models.py:835
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?"
-#: part/models.py:832
+#: part/models.py:841
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:837
+#: part/models.py:846
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:842
+#: part/models.py:851
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:846 part/templates/part/detail.html:227
+#: part/models.py:855 part/templates/part/detail.html:227
#: templates/js/table_filters.js:21 templates/js/table_filters.js:65
-#: templates/js/table_filters.js:241 templates/js/table_filters.js:310
+#: templates/js/table_filters.js:246 templates/js/table_filters.js:315
msgid "Active"
msgstr "Aktiv"
-#: part/models.py:847
+#: part/models.py:856
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:852
+#: part/models.py:861
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?"
-#: part/models.py:857
+#: part/models.py:866
msgid "Part notes - supports Markdown formatting"
msgstr "Bemerkungen - unterstüzt Markdown-Formatierung"
-#: part/models.py:860
+#: part/models.py:869
msgid "BOM checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:860
+#: part/models.py:869
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:863
+#: part/models.py:872
msgid "BOM checked by"
msgstr "Stückliste kontrolliert von"
-#: part/models.py:865
+#: part/models.py:874
msgid "BOM checked date"
msgstr "BOM Kontrolldatum"
-#: part/models.py:869
+#: part/models.py:878
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1608
+#: part/models.py:1617
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2063
+#: part/models.py:2088
msgid "Test templates can only be created for trackable parts"
msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden"
-#: part/models.py:2080
+#: part/models.py:2105
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:2100 templates/js/part.js:717 templates/js/stock.js:117
+#: part/models.py:2125 templates/js/part.js:717 templates/js/stock.js:117
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:2101
+#: part/models.py:2126
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:2106
+#: part/models.py:2131
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:2107
+#: part/models.py:2132
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2112 templates/js/part.js:726
-#: templates/js/table_filters.js:227
+#: part/models.py:2137 templates/js/part.js:726
+#: templates/js/table_filters.js:232
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:2113
+#: part/models.py:2138
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2118 templates/js/part.js:734
+#: part/models.py:2143 templates/js/part.js:734
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:2119
+#: part/models.py:2144
msgid "Does this test require a value when adding a test result?"
msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?"
-#: part/models.py:2124 templates/js/part.js:741
+#: part/models.py:2149 templates/js/part.js:741
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2125
+#: part/models.py:2150
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?"
-#: part/models.py:2158
+#: part/models.py:2187
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2163
+#: part/models.py:2192
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2165
+#: part/models.py:2194
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2193 part/models.py:2242 part/models.py:2243
+#: part/models.py:2226 part/models.py:2275 part/models.py:2276
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Data"
msgstr "Wert"
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2247 templates/InvenTree/settings/category.html:67
+#: part/models.py:2280 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2248
+#: part/models.py:2281
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2278
+#: part/models.py:2315
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2287
+#: part/models.py:2324
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2293
+#: part/models.py:2330
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2332 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2295
+#: part/models.py:2332
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2298
+#: part/models.py:2335
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2299
+#: part/models.py:2336
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2302
+#: part/models.py:2339
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2305
+#: part/models.py:2342
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2307
+#: part/models.py:2344
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2307
+#: part/models.py:2344
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2348 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2312
+#: part/models.py:2349
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt"
-#: part/models.py:2317 templates/js/bom.js:287
+#: part/models.py:2354 templates/js/bom.js:287
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:2318
+#: part/models.py:2355
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Lagerbestand von Varianten kann für diese Stücklisten-Position verwendet werden"
-#: part/models.py:2394 part/views.py:1859 part/views.py:1911
-#: stock/models.py:290
+#: part/models.py:2431 part/views.py:1736 part/views.py:1788
+#: stock/models.py:298
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2403 part/models.py:2405
+#: part/models.py:2440 part/models.py:2442
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2408
+#: part/models.py:2445
msgid "BOM Item"
msgstr "Stücklisten-Position"
-#: part/models.py:2527
+#: part/models.py:2564
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:2563
+#: part/models.py:2600
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?"
@@ -4248,14 +4197,6 @@ msgstr ""
msgid "Part Attachments"
msgstr "Anhänge"
-#: part/templates/part/bom-delete.html:6
-msgid "Are you sure you want to delete this BOM item?"
-msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?"
-
-#: part/templates/part/bom-delete.html:8
-msgid "Deleting this entry will remove the BOM row from the following part"
-msgstr "Die Löschung dieses Eintrags wird das Stücklisten-Position vom folgenden Teil entfernen"
-
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
@@ -4304,7 +4245,7 @@ msgstr "Stückliste bearbeiten"
msgid "Validate Bill of Materials"
msgstr "Stückliste kontrollieren"
-#: part/templates/part/bom.html:61 part/views.py:2154
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr "Stückliste exportieren"
@@ -4320,8 +4261,8 @@ msgstr "Ausgewählte Stücklistenpositionen löschen?"
msgid "All selected BOM items will be deleted"
msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht"
-#: part/templates/part/bom.html:160 part/views.py:590
-#: templates/js/stock.js:1313
+#: part/templates/part/bom.html:160 part/views.py:450
+#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr "Neues Teil anlegen"
@@ -4402,7 +4343,7 @@ msgstr "Neuen Bauauftrag beginnen"
msgid "All parts"
msgstr "Alle Teile"
-#: part/templates/part/category.html:38 part/views.py:2564
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr "Teil-Kategorie anlegen"
@@ -4462,11 +4403,12 @@ msgid "View grid display"
msgstr "Rasteransicht anzeigen"
#: part/templates/part/category.html:218
-#: stock/templates/stock/location.html:192 templates/js/stock.js:737
+#: stock/templates/stock/location.html:192 templates/js/stock.js:751
msgid "Create new location"
msgstr "Neuen Lagerort anlegen"
#: part/templates/part/category.html:223 part/templates/part/category.html:253
+#: part/templates/part/part_base.html:378
msgid "New Category"
msgstr "Neue Kategorie"
@@ -4478,10 +4420,18 @@ msgstr "Teil-Kategorie anlegen"
msgid "Create new Part Category"
msgstr "Neue Teil-Kategorie anlegen"
-#: part/templates/part/category.html:260 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1223
msgid "Create new Stock Location"
msgstr "Neuen Lagerort erstellen"
+#: part/templates/part/category.html:279
+msgid "Select parent category"
+msgstr ""
+
+#: part/templates/part/category.html:286 part/views.py:2389
+msgid "Edit Part Category"
+msgstr "Teil-Kategorie bearbeiten"
+
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr "Sind Sie sicher, dass Sie diese Kategorie löschen wollen"
@@ -4527,7 +4477,7 @@ msgstr ""
msgid "Part Parameters"
msgstr "Teilparameter"
-#: part/templates/part/copy_part.html:9 part/views.py:466
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr "Teil duplizieren"
@@ -4640,36 +4590,6 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:101
-msgid "Internal Price Information"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:19 part/views.py:2989
-msgid "Add Internal Price Break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:28 templates/403.html:5
-#: templates/403.html:11
-msgid "Permission Denied"
-msgstr "Zugriff verweigert"
-
-#: part/templates/part/internal_prices.html:31 templates/403.html:14
-msgid "You do not have permission to view this page."
-msgstr "Keine Berechtigung zum Anzeigen dieser Seite."
-
-#: part/templates/part/internal_prices.html:59
-msgid "No internal price break information found"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:110
-msgid "Edit internal price break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:111
-msgid "Delete internal price break"
-msgstr ""
-
#: part/templates/part/manufacturer.html:11
msgid "Part Manufacturers"
msgstr "Teil-Hersteller"
@@ -4679,7 +4599,7 @@ msgid "Delete manufacturer parts"
msgstr "Herstellerteile löschen"
#: part/templates/part/manufacturer.html:53
-#: part/templates/part/supplier.html:57
+#: part/templates/part/supplier.html:56
msgid "Create new manufacturer"
msgstr "Neuen Hersteller anlegen"
@@ -4703,125 +4623,27 @@ msgstr "Zuweisungen"
msgid "Used In"
msgstr "Benutzt in"
-#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
-msgid "Order Price Information"
-msgstr "Bestellpreisinformationen"
+#: part/templates/part/navbar.html:77
+msgid "Prices"
+msgstr ""
-#: part/templates/part/navbar.html:78
-msgid "Order Price"
-msgstr "Bestellpreis"
-
-#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
-#: part/templates/part/part_pricing.html:82
-msgid "Internal Price"
-msgstr "Interner Preis"
-
-#: part/templates/part/navbar.html:107
-msgid "Sales Price Information"
-msgstr "Preisinformationen ansehen"
-
-#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:109 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr "Teil Test-Vorlagen"
-#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:112 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr "Tests"
-#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
+#: part/templates/part/navbar.html:117 part/templates/part/navbar.html:120
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr "Verknüpfte Teile"
-#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:130 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr "Teil-Bemerkungen"
-#: part/templates/part/order_prices.html:25
-#: part/templates/part/part_base.html:282
-msgid "Calculate"
-msgstr "Berechnen"
-
-#: part/templates/part/order_prices.html:32
-msgid "Pricing ranges"
-msgstr "Preisspannen"
-
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/part_pricing.html:22
-msgid "Supplier Pricing"
-msgstr "Zulieferer-Preise"
-
-#: part/templates/part/order_prices.html:38
-#: part/templates/part/order_prices.html:63
-#: part/templates/part/order_prices.html:95
-#: part/templates/part/order_prices.html:109
-#: part/templates/part/part_pricing.html:26
-#: part/templates/part/part_pricing.html:52
-#: part/templates/part/part_pricing.html:85
-#: part/templates/part/part_pricing.html:100
-msgid "Unit Cost"
-msgstr "Stückpreis"
-
-#: part/templates/part/order_prices.html:45
-#: part/templates/part/order_prices.html:70
-#: part/templates/part/order_prices.html:100
-#: part/templates/part/order_prices.html:114
-#: part/templates/part/part_pricing.html:32
-#: part/templates/part/part_pricing.html:58
-#: part/templates/part/part_pricing.html:89
-#: part/templates/part/part_pricing.html:104
-msgid "Total Cost"
-msgstr "Gesamtkosten"
-
-#: part/templates/part/order_prices.html:53
-#: part/templates/part/part_pricing.html:40
-msgid "No supplier pricing available"
-msgstr "Keine Zulieferer-Preise verfügbar"
-
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:129
-#: part/templates/part/part_pricing.html:48
-msgid "BOM Pricing"
-msgstr "Stücklistenpreise"
-
-#: part/templates/part/order_prices.html:78
-#: part/templates/part/part_pricing.html:66
-msgid "Note: BOM pricing is incomplete for this part"
-msgstr "Anmerkung: Stücklistenbepreisung für dieses Teil ist unvollständig"
-
-#: part/templates/part/order_prices.html:85
-#: part/templates/part/part_pricing.html:73
-msgid "No BOM pricing available"
-msgstr "Keine Stücklisten-Preise verfügbar"
-
-#: part/templates/part/order_prices.html:123
-#: part/templates/part/part_pricing.html:113
-msgid "No pricing information is available for this part."
-msgstr "Keine Preise für dieses Teil verfügbar"
-
-#: part/templates/part/order_prices.html:139
-msgid "Stock Pricing"
-msgstr "Bestandspreise"
-
-#: part/templates/part/order_prices.html:147
-msgid "No stock pricing history is available for this part."
-msgstr "Für dieses Teil sind keine Bestandspreise verfügbar."
-
-#: part/templates/part/order_prices.html:166
-#, python-format
-msgid "Single Price - %(currency)s"
-msgstr "Einzelpreis - %(currency)s"
-
-#: part/templates/part/order_prices.html:178
-#, python-format
-msgid "Single Price Difference - %(currency)s"
-msgstr "Einzelpreisdifferenz - %(currency)s"
-
-#: part/templates/part/order_prices.html:190
-#, python-format
-msgid "Part Single Price - %(currency)s"
-msgstr "Einzelpreis für Zuliefererteil- %(currency)s"
-
#: part/templates/part/params.html:17
msgid "Add new parameter"
msgstr "Parameter hinzufügen"
@@ -4842,8 +4664,8 @@ msgstr "Neue Teilparametervorlage anlegen"
msgid "Part List"
msgstr "Teileliste"
-#: part/templates/part/part_base.html:26 templates/js/company.js:156
-#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161
+#: part/templates/part/part_base.html:26 templates/js/company.js:280
+#: templates/js/company.js:480 templates/js/part.js:84 templates/js/part.js:161
msgid "Inactive"
msgstr "Inaktiv"
@@ -4906,7 +4728,7 @@ msgstr "Dieses Teil ist eine Variante von %(link)s"
msgid "In Stock"
msgstr "Auf Lager"
-#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131
+#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:132
msgid "Required for Build Orders"
msgstr "Für Bauaufträge benötigt"
@@ -4927,10 +4749,86 @@ msgstr "Herstellbar"
msgid "Building"
msgstr "Im Bau"
+#: part/templates/part/part_base.html:285 part/templates/part/prices.html:131
+msgid "Calculate"
+msgstr "Berechnen"
+
+#: part/templates/part/part_base.html:379
+msgid "Create New Part Category"
+msgstr ""
+
+#: part/templates/part/part_base.html:387
+msgid "New Parent"
+msgstr ""
+
+#: part/templates/part/part_base.html:435
+msgid "Edit Part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:27
+msgid "Supplier Pricing"
+msgstr "Zulieferer-Preise"
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:31
+#: part/templates/part/prices.html:58 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:107
+msgid "Unit Cost"
+msgstr "Stückpreis"
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:89
+#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:38
+#: part/templates/part/prices.html:65 part/templates/part/prices.html:95
+#: part/templates/part/prices.html:112
+msgid "Total Cost"
+msgstr "Gesamtkosten"
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:46
+msgid "No supplier pricing available"
+msgstr "Keine Zulieferer-Preise verfügbar"
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:55
+#: part/templates/part/prices.html:235
+msgid "BOM Pricing"
+msgstr "Stücklistenpreise"
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:73
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr "Anmerkung: Stücklistenbepreisung für dieses Teil ist unvollständig"
+
+#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:80
+msgid "No BOM pricing available"
+msgstr "Keine Stücklisten-Preise verfügbar"
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Internal Price"
+msgstr "Interner Preis"
+
+#: part/templates/part/part_pricing.html:113
+#: part/templates/part/prices.html:121
+msgid "No pricing information is available for this part."
+msgstr "Keine Preise für dieses Teil verfügbar"
+
#: part/templates/part/part_tests.html:17
msgid "Add Test Template"
msgstr "Test Vorlage hinzufügen"
+#: part/templates/part/part_tests.html:61
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:79
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:91
+msgid "Delete Test Result Template"
+msgstr ""
+
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr "Aus vorhandenen Bildern auswählen"
@@ -4965,14 +4863,100 @@ msgstr "Es sind %(count)s Zulieferer für diesen Teil definiert. Wenn Sie diesen
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr "Es gibt %(count)s einzigartige Teile, die für '%(full_name)s' verfolgt werden. Das Löschen dieses Teils wird diese Tracking-Informationen dauerhaft entfernen."
+#: part/templates/part/prices.html:12
+msgid "General Price Information"
+msgstr ""
+
+#: part/templates/part/prices.html:22
+msgid "Pricing ranges"
+msgstr "Preisspannen"
+
+#: part/templates/part/prices.html:28
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:29
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:56
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:104
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:105
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:127
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:146
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:147 part/templates/part/prices.html:167
+#: part/templates/part/prices.html:193 part/templates/part/prices.html:224
+#: part/templates/part/prices.html:251 part/templates/part/prices.html:279
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:172
+msgid "Stock Pricing"
+msgstr "Bestandspreise"
+
+#: part/templates/part/prices.html:180
+msgid "No stock pricing history is available for this part."
+msgstr "Für dieses Teil sind keine Bestandspreise verfügbar."
+
+#: part/templates/part/prices.html:192
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:206 part/views.py:2859
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:223
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:250
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:290
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:340
+#, python-format
+msgid "Single Price - %(currency)s"
+msgstr "Einzelpreis - %(currency)s"
+
+#: part/templates/part/prices.html:352
+#, python-format
+msgid "Single Price Difference - %(currency)s"
+msgstr "Einzelpreisdifferenz - %(currency)s"
+
+#: part/templates/part/prices.html:364
+#, python-format
+msgid "Part Single Price - %(currency)s"
+msgstr "Einzelpreis für Zuliefererteil- %(currency)s"
+
+#: part/templates/part/prices.html:464
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
#: part/templates/part/related.html:18
msgid "Add Related"
msgstr "Verknüpftes Teil hinzufügen"
-#: part/templates/part/sale_prices.html:10
-msgid "Sell Price Information"
-msgstr "Verkaufspreis Informationen"
-
#: part/templates/part/sales_orders.html:18
msgid "New sales order"
msgstr "Neuer Auftrag"
@@ -5044,216 +5028,180 @@ msgstr "verknüpftes Teil hinzufügen"
msgid "Delete Related Part"
msgstr "verknüpftes Teil entfernen"
-#: part/views.py:164
-msgid "Add part attachment"
-msgstr "Teilanhang hinzufügen"
-
-#: part/views.py:217 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr "Anhang bearbeiten"
-
-#: part/views.py:221
-msgid "Part attachment updated"
-msgstr "Teilanhang aktualisiert"
-
-#: part/views.py:236
-msgid "Delete Part Attachment"
-msgstr "Teilanhang löschen"
-
-#: part/views.py:244
-msgid "Deleted part attachment"
-msgstr "Teilanhang gelöscht"
-
-#: part/views.py:253
-msgid "Create Test Template"
-msgstr "Testvorlage anlegen"
-
-#: part/views.py:280
-msgid "Edit Test Template"
-msgstr "Testvorlage bearbeiten"
-
-#: part/views.py:294
-msgid "Delete Test Template"
-msgstr "Testvorlage löschen"
-
-#: part/views.py:301
+#: part/views.py:161
msgid "Set Part Category"
msgstr "Teil-Kategorie auswählen"
-#: part/views.py:351
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Kategorie für {n} Teile setzen"
-#: part/views.py:386
+#: part/views.py:246
msgid "Create Variant"
msgstr "Variante anlegen"
-#: part/views.py:471
+#: part/views.py:331
msgid "Copied part"
msgstr "Teil kopiert"
-#: part/views.py:525 part/views.py:663
+#: part/views.py:385 part/views.py:523
msgid "Possible matches exist - confirm creation of new part"
msgstr "Übereinstimmung gefunden - Teil trotzdem anlegen"
-#: part/views.py:595
+#: part/views.py:455
msgid "Created new part"
msgstr "Neues Teil angelegt"
-#: part/views.py:763
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1092
+#: part/views.py:925
+msgid "None"
+msgstr ""
+
+#: part/views.py:984
msgid "Part QR Code"
msgstr "Teil-QR-Code"
-#: part/views.py:1194
-msgid "Upload Part Image"
-msgstr "Teilbild hochladen"
-
-#: part/views.py:1200 part/views.py:1235
-msgid "Updated part image"
-msgstr "Teilbild aktualisiert"
-
-#: part/views.py:1209
+#: part/views.py:1086
msgid "Select Part Image"
msgstr "Teilbild auswählen"
-#: part/views.py:1238
+#: part/views.py:1112
+msgid "Updated part image"
+msgstr "Teilbild aktualisiert"
+
+#: part/views.py:1115
msgid "Part image not found"
msgstr "Teilbild nicht gefunden"
-#: part/views.py:1249
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr "Teileigenschaften bearbeiten"
-#: part/views.py:1284
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr "Stückliste duplizieren"
-#: part/views.py:1314
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr "bestätige Duplizierung Stückliste von übergeordneter Stückliste"
-#: part/views.py:1335
+#: part/views.py:1212
msgid "Validate BOM"
msgstr "Stückliste überprüfen"
-#: part/views.py:1356
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr "Bestätigen, dass Stückliste korrekt ist"
-#: part/views.py:1367
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr "überprüfte Stückliste"
-#: part/views.py:1501
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr "Keine Stückliste angegeben"
-#: part/views.py:1862
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr "Bitte eine gültige Anzahl eingeben"
-#: part/views.py:1887 part/views.py:1890
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr "Bitte ein gültiges Teil auswählen"
-#: part/views.py:1896
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr "Teil doppelt ausgewählt"
-#: part/views.py:1934
+#: part/views.py:1811
msgid "Select a part"
msgstr "Teil auswählen"
-#: part/views.py:1940
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr "gewähltes Teil erzeugt rekursive Stückliste"
-#: part/views.py:1944
+#: part/views.py:1821
msgid "Specify quantity"
msgstr "Anzahl angeben"
-#: part/views.py:2206
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr "Löschen des Teils bestätigen"
-#: part/views.py:2213
+#: part/views.py:2090
msgid "Part was deleted"
msgstr "Teil wurde gelöscht"
-#: part/views.py:2222
+#: part/views.py:2099
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:2363
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:2373
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:2380
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:2388
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr "Teilparameter anlegen"
-#: part/views.py:2438
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr "Teilparameter bearbeiten"
-#: part/views.py:2452
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr "Teilparameter löschen"
-#: part/views.py:2512
-msgid "Edit Part Category"
-msgstr "Teil-Kategorie bearbeiten"
-
-#: part/views.py:2550
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:2556
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:2608
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:2709
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:2765
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:2784
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/views.py:2854
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr "Stücklisten-Position bearbeiten"
-#: part/views.py:2910
-msgid "Confim BOM item deletion"
-msgstr "löschen von Stücklisten-Position bestätigen"
+#: part/views.py:2792
+msgid "Added new price break"
+msgstr "neue Preisstaffel hinzufügt"
-#: part/views.py:2998
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3006
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5359,17 +5307,17 @@ msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1739
+#: stock/models.py:1759
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1745
+#: stock/models.py:1765
msgid "Result"
msgstr "Ergebnis"
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:1012
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr "Datum"
@@ -5381,287 +5329,287 @@ msgstr "bestanden"
msgid "Fail"
msgstr "fehlgeschlagen"
-#: stock/api.py:212
+#: stock/api.py:211
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr "Bestand für {n} Objekte geändert"
-#: stock/api.py:281
+#: stock/api.py:280
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr "{n} Teile nach {loc} bewegt"
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
+#: stock/forms.py:81 stock/forms.py:385 stock/models.py:513
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr "Ablaufdatum"
-#: stock/forms.py:115 stock/forms.py:419
+#: stock/forms.py:82 stock/forms.py:386
msgid "Expiration date for this stock item"
msgstr "Ablaufdatum für dieses BestandsObjekt"
-#: stock/forms.py:118
+#: stock/forms.py:85
msgid "Enter unique serial numbers (or leave blank)"
msgstr "Eindeutige Seriennummern eingeben (oder leer lassen)"
-#: stock/forms.py:169
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr "Lagerort für serial"
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr "Seriennummern"
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr "Anzahl der eindeutigen Seriennummern (muss mit der Anzahl übereinstimmen)"
-#: stock/forms.py:173 stock/forms.py:349
+#: stock/forms.py:140 stock/forms.py:316
msgid "Add transaction note (optional)"
msgstr " Transaktionsnotizen hinzufügen (optional)"
-#: stock/forms.py:203 stock/forms.py:259
+#: stock/forms.py:170 stock/forms.py:226
msgid "Select test report template"
msgstr "Test Bericht Vorlage auswählen"
-#: stock/forms.py:267 templates/js/table_filters.js:75
+#: stock/forms.py:234 templates/js/table_filters.js:75
#: templates/js/table_filters.js:138
msgid "Include sublocations"
msgstr "Unter-Lagerorte einschließen"
-#: stock/forms.py:267
+#: stock/forms.py:234
msgid "Include stock items in sub locations"
msgstr "BestandsObjekt in untergeordneten Lagerorten einschließen"
-#: stock/forms.py:302
+#: stock/forms.py:269
msgid "Stock item to install"
msgstr "BestandsObjekt zum verbauen"
-#: stock/forms.py:309
+#: stock/forms.py:276
msgid "Stock quantity to assign"
msgstr "Bestandmenge zum Zuweisen"
-#: stock/forms.py:337
+#: stock/forms.py:304
msgid "Must not exceed available quantity"
msgstr "Anzahl darf die verfügbare Anzahl nicht überschreiten"
-#: stock/forms.py:347
+#: stock/forms.py:314
msgid "Destination location for uninstalled items"
msgstr "Ziel Lagerort für unverbaute Objekte"
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm uninstall"
msgstr "nicht mehr verbauen bestätigen"
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm removal of installed stock items"
msgstr "Entfernen der verbauten BestandsObjekt bestätigen"
-#: stock/forms.py:375
+#: stock/forms.py:342
msgid "Destination stock location"
msgstr "Ziel-Lagerbestand"
-#: stock/forms.py:377
+#: stock/forms.py:344
msgid "Add note (required)"
msgstr "Notiz hinzufügen (erforderlich)"
-#: stock/forms.py:381 stock/views.py:852 stock/views.py:1051
+#: stock/forms.py:348 stock/views.py:705 stock/views.py:904
msgid "Confirm stock adjustment"
msgstr "Bestands-Anpassung bestätigen"
-#: stock/forms.py:381
+#: stock/forms.py:348
msgid "Confirm movement of stock items"
msgstr "Verschieben der BestandsObjekt bestätigen"
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set Default Location"
msgstr "Standard-Lagerort ändern"
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set the destination as the default location for selected parts"
msgstr "Setze das Ziel als Standard-Lagerort für ausgewählte Teile"
-#: stock/models.py:52 stock/models.py:542
+#: stock/models.py:56 stock/models.py:550
msgid "Owner"
msgstr "Besitzer"
-#: stock/models.py:53 stock/models.py:543
+#: stock/models.py:57 stock/models.py:551
msgid "Select Owner"
msgstr "Besitzer auswählen"
-#: stock/models.py:271
+#: stock/models.py:279
msgid "StockItem with this serial number already exists"
msgstr "Ein BestandsObjekt mit dieser Seriennummer existiert bereits"
-#: stock/models.py:307
+#: stock/models.py:315
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Teile-Typ ('{pf}') muss {pe} sein"
-#: stock/models.py:317 stock/models.py:326
+#: stock/models.py:325 stock/models.py:334
msgid "Quantity must be 1 for item with a serial number"
msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein"
-#: stock/models.py:318
+#: stock/models.py:326
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist"
-#: stock/models.py:340
+#: stock/models.py:348
msgid "Item cannot belong to itself"
msgstr "Teil kann nicht zu sich selbst gehören"
-#: stock/models.py:346
+#: stock/models.py:354
msgid "Item must have a build reference if is_building=True"
msgstr "Teil muss eine Referenz haben wenn is_building wahr ist"
-#: stock/models.py:353
+#: stock/models.py:361
msgid "Build reference does not point to the same part object"
msgstr "Referenz verweist nicht auf das gleiche Teil"
-#: stock/models.py:395
+#: stock/models.py:403
msgid "Parent Stock Item"
msgstr "Eltern-BestandsObjekt"
-#: stock/models.py:404
+#: stock/models.py:412
msgid "Base part"
msgstr "Basis-Teil"
-#: stock/models.py:413
+#: stock/models.py:421
msgid "Select a matching supplier part for this stock item"
msgstr "Passendes Zuliefererteil für dieses BestandsObjekt auswählen"
-#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:426 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Bestand-Lagerort"
-#: stock/models.py:421
+#: stock/models.py:429
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:428
+#: stock/models.py:436
msgid "Packaging this stock item is stored in"
msgstr "Die Verpackung dieses BestandsObjekt ist gelagert in"
-#: stock/models.py:433 stock/templates/stock/item_base.html:270
+#: stock/models.py:441 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr "verbaut in"
-#: stock/models.py:436
+#: stock/models.py:444
msgid "Is this item installed in another item?"
msgstr "Ist dieses Teil in einem anderen verbaut?"
-#: stock/models.py:452
+#: stock/models.py:460
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:464
+#: stock/models.py:472
msgid "Batch code for this stock item"
msgstr "Losnummer für dieses BestandsObjekt"
-#: stock/models.py:468
+#: stock/models.py:476
msgid "Stock Quantity"
msgstr "Bestand"
-#: stock/models.py:477
+#: stock/models.py:485
msgid "Source Build"
msgstr "Quellbau"
-#: stock/models.py:479
+#: stock/models.py:487
msgid "Build for this stock item"
msgstr "Bauauftrag für dieses BestandsObjekt"
-#: stock/models.py:490
+#: stock/models.py:498
msgid "Source Purchase Order"
msgstr "Quelle Bestellung"
-#: stock/models.py:493
+#: stock/models.py:501
msgid "Purchase order for this stock item"
msgstr "Bestellung für dieses BestandsObjekt"
-#: stock/models.py:499
+#: stock/models.py:507
msgid "Destination Sales Order"
msgstr "Ziel-Auftrag"
-#: stock/models.py:506
+#: stock/models.py:514
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Ablaufdatum für BestandsObjekt. Bestand wird danach als abgelaufen gekennzeichnet"
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete on deplete"
msgstr "Löschen wenn leer"
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete this Stock Item when stock is depleted"
msgstr "Dieses BestandsObjekt löschen wenn Bestand aufgebraucht"
-#: stock/models.py:529 stock/templates/stock/item_notes.html:13
+#: stock/models.py:537 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr "BestandsObjekt-Notizen"
-#: stock/models.py:538
+#: stock/models.py:546
msgid "Single unit purchase price at time of purchase"
msgstr "Preis für eine Einheit bei Einkauf"
-#: stock/models.py:1006
+#: stock/models.py:1014
msgid "Part is not set as trackable"
msgstr "Teil ist nicht verfolgbar"
-#: stock/models.py:1012
+#: stock/models.py:1020
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:1018
+#: stock/models.py:1026
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})"
-#: stock/models.py:1021
+#: stock/models.py:1029
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:1024
+#: stock/models.py:1032
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:1031
+#: stock/models.py:1039
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seriennummern {exists} existieren bereits"
-#: stock/models.py:1189
+#: stock/models.py:1197
msgid "StockItem cannot be moved as it is not in stock"
msgstr "BestandsObjekt kann nicht bewegt werden, da kein Bestand vorhanden ist"
-#: stock/models.py:1663
+#: stock/models.py:1679
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:1716
+#: stock/models.py:1736
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:1722
+#: stock/models.py:1742
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:1740
+#: stock/models.py:1760
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:1746 templates/js/table_filters.js:217
+#: stock/models.py:1766 templates/js/table_filters.js:222
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:1752
+#: stock/models.py:1772
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:1759
+#: stock/models.py:1779
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:1765
+#: stock/models.py:1785
msgid "Test notes"
msgstr "Test Notizen"
@@ -5851,6 +5799,10 @@ msgstr "Letzte Inventur"
msgid "No stocktake performed"
msgstr "Keine Inventur ausgeführt"
+#: stock/templates/stock/item_base.html:499
+msgid "Edit Stock Status"
+msgstr ""
+
#: stock/templates/stock/item_childs.html:12
msgid "Child Stock Items"
msgstr "Kind-BestandsObjekt"
@@ -5910,6 +5862,19 @@ msgstr "Testdaten löschen"
msgid "Add Test Data"
msgstr "Testdaten hinzufügen"
+#: stock/templates/stock/item_tests.html:86
+#: stock/templates/stock/item_tests.html:111
+msgid "Add Test Result"
+msgstr "Testergebnis hinzufügen"
+
+#: stock/templates/stock/item_tests.html:131
+msgid "Edit Test Result"
+msgstr "Testergebnis bearbeiten"
+
+#: stock/templates/stock/item_tests.html:145
+msgid "Delete Test Result"
+msgstr "Testergebnis löschen"
+
#: stock/templates/stock/location.html:20
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands-Lagerort kann nicht verändert werden."
@@ -5958,7 +5923,7 @@ msgid "Stock Details"
msgstr "Objekt-Details"
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:97 users/models.py:41
+#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
@@ -5998,7 +5963,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:1364
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1196
msgid "Convert Stock Item"
msgstr "BestandsObjekt umwandeln"
@@ -6031,8 +5996,8 @@ msgstr "Sind Sie sicher, dass Sie diesen BestandsObjekt-Verfolgungs-Eintrag lös
msgid "Edit Stock Location"
msgstr "BestandsObjekt-Lagerort bearbeiten"
-#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
-#: stock/views.py:1830
+#: stock/views.py:230 stock/views.py:1175 stock/views.py:1297
+#: stock/views.py:1662
msgid "Owner is required (ownership control is enabled)"
msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)"
@@ -6040,208 +6005,188 @@ msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)"
msgid "Stock Location QR code"
msgstr "QR-Code für diesen Lagerort"
-#: stock/views.py:265
-msgid "Add Stock Item Attachment"
-msgstr "BestandsObjekt-Anhang hinzufügen"
-
-#: stock/views.py:311
-msgid "Edit Stock Item Attachment"
-msgstr "BestandsObjekt-Anhang bearbeiten"
-
-#: stock/views.py:327
-msgid "Delete Stock Item Attachment"
-msgstr "BestandsObjekt-Anhang löschen"
-
-#: stock/views.py:343
+#: stock/views.py:264
msgid "Assign to Customer"
msgstr "Kunden zuweisen"
-#: stock/views.py:352
+#: stock/views.py:273
msgid "Customer must be specified"
msgstr "Kunde muss angegeben werden"
-#: stock/views.py:376
+#: stock/views.py:297
msgid "Return to Stock"
msgstr "zurück ins Lager"
-#: stock/views.py:385
+#: stock/views.py:306
msgid "Specify a valid location"
msgstr "gültigen Lagerort angeben"
-#: stock/views.py:396
+#: stock/views.py:317
msgid "Stock item returned from customer"
msgstr "BestandsObjekt retoure vom Kunden"
-#: stock/views.py:407
+#: stock/views.py:328
msgid "Delete All Test Data"
msgstr "alle Testdaten löschen"
-#: stock/views.py:424
+#: stock/views.py:345
msgid "Confirm test data deletion"
msgstr "Löschen Testdaten bestätigen"
-#: stock/views.py:444
-msgid "Add Test Result"
-msgstr "Testergebnis hinzufügen"
-
-#: stock/views.py:484
-msgid "Edit Test Result"
-msgstr "Testergebnis bearbeiten"
-
-#: stock/views.py:501
-msgid "Delete Test Result"
-msgstr "Testergebnis löschen"
-
-#: stock/views.py:509
+#: stock/views.py:362
msgid "Stock Export Options"
msgstr "Lagerbestand Exportoptionen"
-#: stock/views.py:630
+#: stock/views.py:483
msgid "Stock Item QR Code"
msgstr "BestandsObjekt-QR-Code"
-#: stock/views.py:656
+#: stock/views.py:509
msgid "Install Stock Item"
msgstr "BestandsObjekt installiert"
-#: stock/views.py:755
+#: stock/views.py:608
msgid "Uninstall Stock Items"
msgstr "BestandsObjekte deinstallieren"
-#: stock/views.py:863
+#: stock/views.py:716
msgid "Uninstalled stock items"
msgstr "BestandsObjekte deinstalliert"
-#: stock/views.py:888
+#: stock/views.py:741
msgid "Adjust Stock"
msgstr "Lagerbestand anpassen"
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move Stock Items"
msgstr "BestandsObjekte bewegen"
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move"
msgstr "Verschieben"
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count Stock Items"
msgstr "BestandsObjekte zählen"
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count"
msgstr "Anzahl"
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Remove From Stock"
msgstr "Aus Lagerbestand entfernen"
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Take"
msgstr "Entfernen"
-#: stock/views.py:1001
+#: stock/views.py:854
msgid "Add Stock Items"
msgstr "BestandsObjekte hinzufügen"
-#: stock/views.py:1001 users/models.py:187
+#: stock/views.py:854 users/models.py:188
msgid "Add"
msgstr "Hinzufügen"
-#: stock/views.py:1002
+#: stock/views.py:855
msgid "Delete Stock Items"
msgstr "BestandsObjekte löschen"
-#: stock/views.py:1031
+#: stock/views.py:884
msgid "Must enter integer value"
msgstr "Nur Ganzzahl eingeben"
-#: stock/views.py:1036
+#: stock/views.py:889
msgid "Quantity must be positive"
msgstr "Anzahl muss positiv sein"
-#: stock/views.py:1043
+#: stock/views.py:896
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr "Anzahl darf {x} nicht überschreiten"
-#: stock/views.py:1107
+#: stock/views.py:960
msgid "No action performed"
msgstr "Keine Aktion durchgeführt"
-#: stock/views.py:1122
+#: stock/views.py:975
#, python-brace-format
msgid "Added stock to {n} items"
msgstr "Vorrat zu {n} BestandsObjekten hinzugefügt"
-#: stock/views.py:1137
+#: stock/views.py:990
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr "Vorrat von {n} BestandsObjekten entfernt"
-#: stock/views.py:1150
+#: stock/views.py:1003
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr "Bestand für {n} Objekte erfasst"
-#: stock/views.py:1190
+#: stock/views.py:1043
msgid "No items were moved"
msgstr "Keine BestandsObjekt wurden bewegt"
-#: stock/views.py:1193
+#: stock/views.py:1046
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr "{n} Teile nach {dest} bewegt"
-#: stock/views.py:1212
+#: stock/views.py:1065
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr "{n} BestandsObjekte gelöscht"
-#: stock/views.py:1222
-msgid "Edit Stock Item Status"
-msgstr "Status bearbeiten"
-
-#: stock/views.py:1245
+#: stock/views.py:1077
msgid "Edit Stock Item"
msgstr "BestandsObjekt bearbeiten"
-#: stock/views.py:1482
+#: stock/views.py:1314
msgid "Serialize Stock"
msgstr "Lagerbestand erfassen"
-#: stock/views.py:1575 templates/js/build.js:327
+#: stock/views.py:1407 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr "Neues BestandsObjekt hinzufügen"
-#: stock/views.py:1717
+#: stock/views.py:1549
msgid "Duplicate Stock Item"
msgstr "Bestand duplizieren"
-#: stock/views.py:1799
+#: stock/views.py:1631
msgid "Quantity cannot be negative"
msgstr "Anzahl kann nicht negativ sein"
-#: stock/views.py:1899
+#: stock/views.py:1731
msgid "Delete Stock Location"
msgstr "Bestand-Lagerort löschen"
-#: stock/views.py:1912
+#: stock/views.py:1744
msgid "Delete Stock Item"
msgstr "BestandsObjekt löschen"
-#: stock/views.py:1923
+#: stock/views.py:1755
msgid "Delete Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag löschen"
-#: stock/views.py:1930
+#: stock/views.py:1762
msgid "Edit Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag bearbeiten"
-#: stock/views.py:1939
+#: stock/views.py:1771
msgid "Add Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag hinzufügen"
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr "Zugriff verweigert"
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr "Keine Berechtigung zum Anzeigen dieser Seite."
+
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
msgstr "Seite nicht gefunden"
@@ -6270,35 +6215,39 @@ msgstr "Stücklisten erwarten Kontrolle"
msgid "Recently Updated"
msgstr "kürzlich aktualisiert"
-#: templates/InvenTree/index.html:145
+#: templates/InvenTree/index.html:131
+msgid "Depleted Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:146
msgid "Expired Stock"
msgstr "abgelaufener Bestand"
-#: templates/InvenTree/index.html:146
+#: templates/InvenTree/index.html:147
msgid "Stale Stock"
msgstr "Lagerbestand überfällig"
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:192
msgid "Build Orders In Progress"
msgstr "laufende Bauaufträge"
-#: templates/InvenTree/index.html:185
+#: templates/InvenTree/index.html:193
msgid "Overdue Build Orders"
msgstr "überfällige Bauaufträge"
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:214
msgid "Outstanding Purchase Orders"
msgstr "ausstehende Bestellungen"
-#: templates/InvenTree/index.html:207
+#: templates/InvenTree/index.html:215
msgid "Overdue Purchase Orders"
msgstr "überfällige Bestellungen"
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:237
msgid "Outstanding Sales Orders"
msgstr "ausstehende Aufträge"
-#: templates/InvenTree/index.html:230
+#: templates/InvenTree/index.html:238
msgid "Overdue Sales Orders"
msgstr "überfällige Aufträge"
@@ -6586,24 +6535,12 @@ msgstr "In die Zwischenablage kopieren"
msgid "copy version information"
msgstr "Versionsinformationen kopieren"
-#: templates/about.html:100 templates/js/modals.js:568
-#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54
-#: templates/modals.html:97
+#: templates/about.html:100 templates/js/modals.js:34
+#: templates/js/modals.js:677 templates/js/modals.js:970
+#: templates/modals.html:29 templates/modals.html:54 templates/modals.html:97
msgid "Close"
msgstr "Schliessen"
-#: templates/attachment_table.html:6
-msgid "Add Attachment"
-msgstr "Anhang hinzufügen"
-
-#: templates/attachment_table.html:17
-msgid "Uploaded"
-msgstr "Hochgeladen"
-
-#: templates/attachment_table.html:35
-msgid "Delete attachment"
-msgstr "Anhang löschen"
-
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr "URL für Bild-Donwload angeben"
@@ -6620,6 +6557,22 @@ msgstr "Der angegebene Server muss erreichbar sein"
msgid "Remote image must not exceed maximum allowable file size"
msgstr "Das Bild darf nicht größer als die maximal-erlaubte Größe sein"
+#: templates/js/attachment.js:16
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/attachment.js:56
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/attachment.js:69
+msgid "Edit attachment"
+msgstr "Anhang bearbeiten"
+
+#: templates/js/attachment.js:76
+msgid "Delete attachment"
+msgstr "Anhang löschen"
+
#: templates/js/barcode.js:8
msgid "Scan barcode data here using wedge scanner"
msgstr "Hier den Barcode scannen"
@@ -6648,7 +6601,7 @@ msgstr "Server-Fehler"
msgid "Unknown response from server"
msgstr "Unbekannte Antwort von Server erhalten"
-#: templates/js/barcode.js:119 templates/js/modals.js:921
+#: templates/js/barcode.js:119 templates/js/modals.js:1030
msgid "Invalid server response"
msgstr "Ungültige Antwort von Server"
@@ -6748,7 +6701,7 @@ msgstr "Diese Position wurde kontrolliert"
msgid "Edit BOM Item"
msgstr "Stücklisten-Position bearbeiten"
-#: templates/js/bom.js:372
+#: templates/js/bom.js:372 templates/js/bom.js:519
msgid "Delete BOM Item"
msgstr "Stücklisten-Position löschen"
@@ -6776,7 +6729,7 @@ msgstr "Endprodukt entfernen"
msgid "No build order allocations found"
msgstr ""
-#: templates/js/build.js:222 templates/js/order.js:382
+#: templates/js/build.js:222 templates/js/order.js:449
msgid "Location not specified"
msgstr "Standort nicht angegeben"
@@ -6802,7 +6755,7 @@ msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
-#: templates/js/stock.js:514 templates/js/stock.js:966
+#: templates/js/stock.js:514 templates/js/stock.js:980
msgid "Select"
msgstr "Auswählen"
@@ -6814,45 +6767,69 @@ msgstr "Bauauftrag ist überfällig"
msgid "No parts allocated for"
msgstr "Keine Teile zugeordnet zu"
-#: templates/js/company.js:74
+#: templates/js/company.js:45
+msgid "Edit Company"
+msgstr "Firma bearbeiten"
+
+#: templates/js/company.js:66
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/company.js:143
msgid "Parts Supplied"
msgstr "Teile geliefert"
-#: templates/js/company.js:83
+#: templates/js/company.js:152
msgid "Parts Manufactured"
msgstr "Hersteller-Teile"
-#: templates/js/company.js:96
+#: templates/js/company.js:165
msgid "No company information found"
msgstr "Keine Firmeninformation gefunden"
-#: templates/js/company.js:129
+#: templates/js/company.js:183
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/company.js:200
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/company.js:253
msgid "No manufacturer parts found"
msgstr "Keine Herstellerteile gefunden"
-#: templates/js/company.js:148 templates/js/company.js:347
+#: templates/js/company.js:272 templates/js/company.js:472
#: templates/js/part.js:68 templates/js/part.js:153
msgid "Template part"
msgstr "Vorlagenteil"
-#: templates/js/company.js:152 templates/js/company.js:351
+#: templates/js/company.js:276 templates/js/company.js:476
#: templates/js/part.js:72 templates/js/part.js:157
msgid "Assembled part"
msgstr "Baugruppe"
-#: templates/js/company.js:226
+#: templates/js/company.js:350
msgid "No parameters found"
msgstr ""
-#: templates/js/company.js:262
+#: templates/js/company.js:386
msgid "Edit parameter"
msgstr ""
-#: templates/js/company.js:263
+#: templates/js/company.js:387
msgid "Delete parameter"
msgstr ""
-#: templates/js/company.js:328
+#: templates/js/company.js:406
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/company.js:417
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/company.js:453
msgid "No supplier parts found"
msgstr "Keine Zuliefererteile gefunden"
@@ -6880,6 +6857,83 @@ msgstr "Filter entfernen"
msgid "Create filter"
msgstr "Filter anlegen"
+#: templates/js/forms.js:278 templates/js/forms.js:291
+#: templates/js/forms.js:303 templates/js/forms.js:315
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/forms.js:279
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:292
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:304
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:316
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:583 templates/js/modals.js:1040
+msgid "No Response"
+msgstr "Keine Antwort"
+
+#: templates/js/forms.js:584 templates/js/modals.js:1041
+msgid "No response from the InvenTree server"
+msgstr "keine Antwort vom InvenTree Server"
+
+#: templates/js/forms.js:590 templates/js/modals.js:1050
+msgid "Error 401: Not Authenticated"
+msgstr "Fehler 401: Nicht Angemeldet"
+
+#: templates/js/forms.js:591 templates/js/modals.js:1051
+msgid "Authentication credentials not supplied"
+msgstr "Authentication Kredentials nicht angegeben"
+
+#: templates/js/forms.js:597 templates/js/modals.js:1055
+msgid "Error 403: Permission Denied"
+msgstr "Fehler 403: keine Berechtigung"
+
+#: templates/js/forms.js:598 templates/js/modals.js:1056
+msgid "You do not have the required permissions to access this function"
+msgstr "Fehlende Berechtigung für diese Aktion"
+
+#: templates/js/forms.js:604 templates/js/modals.js:1060
+msgid "Error 404: Resource Not Found"
+msgstr "Fehler 404: Ressource nicht gefunden"
+
+#: templates/js/forms.js:605 templates/js/modals.js:1061
+msgid "The requested resource could not be located on the server"
+msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden"
+
+#: templates/js/forms.js:611 templates/js/modals.js:1065
+msgid "Error 408: Timeout"
+msgstr "Fehler 408: Zeitüberschreitung"
+
+#: templates/js/forms.js:612 templates/js/modals.js:1066
+msgid "Connection timeout while requesting data from server"
+msgstr "Verbindungszeitüberschreitung bei der Datenanforderung"
+
+#: templates/js/forms.js:618 templates/js/modals.js:1069
+msgid "Error requesting form data"
+msgstr "Fehler bei Formulardaten-Anfrage"
+
+#: templates/js/forms.js:788 templates/modals.html:21 templates/modals.html:47
+msgid "Form errors exist"
+msgstr "Fehler in Formular"
+
+#: templates/js/forms.js:1161
+msgid "Searching"
+msgstr ""
+
+#: templates/js/forms.js:1301
+msgid "Clear input"
+msgstr ""
+
#: templates/js/label.js:10 templates/js/report.js:98
msgid "Select Stock Items"
msgstr "BestandsObjekte auswählen"
@@ -6920,112 +6974,102 @@ msgstr "Label auswählen"
msgid "Select Label Template"
msgstr "Label-Vorlage auswählen"
-#: templates/js/modals.js:265
-msgid "Waiting for server..."
-msgstr "Warte auf Server..."
-
-#: templates/js/modals.js:424
-msgid "Show Error Information"
-msgstr "Fehler-Informationen anzeigen"
-
-#: templates/js/modals.js:491 templates/modals.html:76
-msgid "Accept"
-msgstr "Akzeptieren"
-
-#: templates/js/modals.js:492 templates/modals.html:75
+#: templates/js/modals.js:59 templates/js/modals.js:105
+#: templates/js/modals.js:601 templates/modals.html:75
msgid "Cancel"
msgstr "abbrechen"
-#: templates/js/modals.js:556
-msgid "Loading Data"
-msgstr "Lade Daten"
-
-#: templates/js/modals.js:567 templates/js/modals.js:860
+#: templates/js/modals.js:60 templates/js/modals.js:104
+#: templates/js/modals.js:676 templates/js/modals.js:969
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr "Abschicken"
-#: templates/js/modals.js:811
+#: templates/js/modals.js:103
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/modals.js:374
+msgid "Waiting for server..."
+msgstr "Warte auf Server..."
+
+#: templates/js/modals.js:533
+msgid "Show Error Information"
+msgstr "Fehler-Informationen anzeigen"
+
+#: templates/js/modals.js:600 templates/modals.html:76
+msgid "Accept"
+msgstr "Akzeptieren"
+
+#: templates/js/modals.js:665
+msgid "Loading Data"
+msgstr "Lade Daten"
+
+#: templates/js/modals.js:920
msgid "Invalid response from server"
msgstr "ungültige Antwort vom Server"
-#: templates/js/modals.js:811
+#: templates/js/modals.js:920
msgid "Form data missing from server response"
msgstr "Formulardaten fehlen bei Serverantwort"
-#: templates/js/modals.js:824
+#: templates/js/modals.js:933
msgid "Error posting form data"
msgstr "Formulardaten fehlerhaft"
-#: templates/js/modals.js:921
+#: templates/js/modals.js:1030
msgid "JSON response missing form data"
msgstr "JSON Antwort enthält keine Formulardaten"
-#: templates/js/modals.js:931
-msgid "No Response"
-msgstr "Keine Antwort"
-
-#: templates/js/modals.js:932
-msgid "No response from the InvenTree server"
-msgstr "keine Antwort vom InvenTree Server"
-
-#: templates/js/modals.js:936
+#: templates/js/modals.js:1045
msgid "Error 400: Bad Request"
msgstr "Fehler 400: Ungültige Anfrage"
-#: templates/js/modals.js:937
+#: templates/js/modals.js:1046
msgid "Server returned error code 400"
msgstr "Fehler 400 von Server erhalten"
-#: templates/js/modals.js:941
-msgid "Error 401: Not Authenticated"
-msgstr "Fehler 401: Nicht Angemeldet"
+#: templates/js/model_renderers.js:21
+msgid "Company ID"
+msgstr ""
-#: templates/js/modals.js:942
-msgid "Authentication credentials not supplied"
-msgstr "Authentication Kredentials nicht angegeben"
+#: templates/js/model_renderers.js:63
+msgid "Location ID"
+msgstr ""
-#: templates/js/modals.js:946
-msgid "Error 403: Permission Denied"
-msgstr "Fehler 403: keine Berechtigung"
+#: templates/js/model_renderers.js:90
+msgid "Part ID"
+msgstr ""
-#: templates/js/modals.js:947
-msgid "You do not have the required permissions to access this function"
-msgstr "Fehlende Berechtigung für diese Aktion"
+#: templates/js/model_renderers.js:126
+msgid "Category ID"
+msgstr ""
-#: templates/js/modals.js:951
-msgid "Error 404: Resource Not Found"
-msgstr "Fehler 404: Ressource nicht gefunden"
+#: templates/js/model_renderers.js:150
+msgid "Supplier Part ID"
+msgstr ""
-#: templates/js/modals.js:952
-msgid "The requested resource could not be located on the server"
-msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden"
+#: templates/js/order.js:31
+msgid "Create Sales Order"
+msgstr "Auftrag anlegen"
-#: templates/js/modals.js:956
-msgid "Error 408: Timeout"
-msgstr "Fehler 408: Zeitüberschreitung"
-
-#: templates/js/modals.js:957
-msgid "Connection timeout while requesting data from server"
-msgstr "Verbindungszeitüberschreitung bei der Datenanforderung"
-
-#: templates/js/modals.js:960
-msgid "Error requesting form data"
-msgstr "Fehler bei Formulardaten-Anfrage"
-
-#: templates/js/order.js:138
+#: templates/js/order.js:200
msgid "No purchase orders found"
msgstr "Keine Bestellungen gefunden"
-#: templates/js/order.js:162 templates/js/order.js:257
+#: templates/js/order.js:224 templates/js/order.js:319
msgid "Order is overdue"
msgstr "Bestellung überfällig"
-#: templates/js/order.js:234
+#: templates/js/order.js:296
msgid "No sales orders found"
msgstr "Keine Aufträge gefunden"
-#: templates/js/order.js:343
+#: templates/js/order.js:333
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/order.js:410
msgid "No sales order allocations found"
msgstr ""
@@ -7065,11 +7109,11 @@ msgstr "Keine Teile gefunden"
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/part.js:476 templates/js/table_filters.js:323
+#: templates/js/part.js:476 templates/js/table_filters.js:328
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/part.js:660 templates/js/stock.js:990
+#: templates/js/part.js:660 templates/js/stock.js:1004
msgid "Path"
msgstr "Pfad"
@@ -7089,7 +7133,22 @@ msgstr "Testergebnis löschen"
msgid "This test is defined for a parent part"
msgstr "Dieses Testergebnis ist für ein Hauptteil"
-#: templates/js/part.js:806
+#: templates/js/part.js:786
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/part.js:839
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:840
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:959
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
@@ -7267,75 +7326,75 @@ msgstr "gelöscht"
msgid "Stocktake"
msgstr "Inventur"
-#: templates/js/stock.js:853
+#: templates/js/stock.js:867
msgid "Stock Status"
msgstr "Status"
-#: templates/js/stock.js:868
+#: templates/js/stock.js:882
msgid "Set Stock Status"
msgstr "Status setzen"
-#: templates/js/stock.js:882
+#: templates/js/stock.js:896
msgid "Select Status Code"
msgstr "Status Code setzen"
-#: templates/js/stock.js:883
+#: templates/js/stock.js:897
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/stock.js:1022
+#: templates/js/stock.js:1036
msgid "Invalid date"
msgstr "Ungültiges Datum"
-#: templates/js/stock.js:1069
+#: templates/js/stock.js:1083
msgid "Location no longer exists"
msgstr "Standort nicht mehr vorhanden"
-#: templates/js/stock.js:1088
+#: templates/js/stock.js:1102
msgid "Purchase order no longer exists"
msgstr "Bestellung existiert nicht mehr"
-#: templates/js/stock.js:1107
+#: templates/js/stock.js:1121
msgid "Customer no longer exists"
msgstr "Kunde existiert nicht mehr"
-#: templates/js/stock.js:1125
+#: templates/js/stock.js:1139
msgid "Stock item no longer exists"
msgstr "Lagerbestand existiert nicht mehr"
-#: templates/js/stock.js:1148
+#: templates/js/stock.js:1162
msgid "Added"
msgstr "Hinzugefügt"
-#: templates/js/stock.js:1156
+#: templates/js/stock.js:1170
msgid "Removed"
msgstr "Entfernt"
-#: templates/js/stock.js:1188
+#: templates/js/stock.js:1202
msgid "No user information"
msgstr "Keine Benutzerinformation"
-#: templates/js/stock.js:1200
+#: templates/js/stock.js:1214
msgid "Edit tracking entry"
msgstr "Tracking-Eintrag bearbeiten"
-#: templates/js/stock.js:1201
+#: templates/js/stock.js:1215
msgid "Delete tracking entry"
msgstr "Tracking-Eintrag löschen"
-#: templates/js/stock.js:1325
+#: templates/js/stock.js:1339
msgid "Create New Location"
msgstr "Neuen Lagerort anlegen"
-#: templates/js/stock.js:1366
+#: templates/js/stock.js:1380
msgid "No installed items"
msgstr "Keine installierten Elemente"
-#: templates/js/stock.js:1389
+#: templates/js/stock.js:1403
msgid "Serial"
msgstr "Seriennummer"
-#: templates/js/stock.js:1417
+#: templates/js/stock.js:1431
msgid "Uninstall Stock Item"
msgstr "Lagerbestand entfernen"
@@ -7356,7 +7415,7 @@ msgid "Include locations"
msgstr "Lagerorte einschließen"
#: templates/js/table_filters.js:86 templates/js/table_filters.js:87
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:305
msgid "Include subcategories"
msgstr "Unterkategorien einschließen"
@@ -7389,7 +7448,7 @@ msgstr "Seriennummer"
msgid "Batch code"
msgstr "Losnummer"
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:290
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:295
msgid "Active parts"
msgstr "Aktive Teile"
@@ -7461,43 +7520,51 @@ msgstr "zeige zu Kunden zugeordnete Einträge"
msgid "Stock status"
msgstr "Status"
-#: templates/js/table_filters.js:236
+#: templates/js/table_filters.js:211
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/table_filters.js:212
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/table_filters.js:241
msgid "Build status"
msgstr "Bauauftrags-Status"
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
msgid "Order status"
msgstr "Bestellstatus"
-#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
+#: templates/js/table_filters.js:265 templates/js/table_filters.js:282
msgid "Outstanding"
msgstr "ausstehend"
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:306
msgid "Include parts in subcategories"
msgstr "Teile in Unterkategorien einschließen"
-#: templates/js/table_filters.js:305
+#: templates/js/table_filters.js:310
msgid "Has IPN"
msgstr "Hat IPN"
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:311
msgid "Part has internal part number"
msgstr "Teil hat Interne Teilenummer"
-#: templates/js/table_filters.js:311
+#: templates/js/table_filters.js:316
msgid "Show active parts"
msgstr "Aktive Teile anzeigen"
-#: templates/js/table_filters.js:319
+#: templates/js/table_filters.js:324
msgid "Stock available"
msgstr "verfügbarer Lagerbestand"
-#: templates/js/table_filters.js:335
+#: templates/js/table_filters.js:340
msgid "Starred"
msgstr "Favorit"
-#: templates/js/table_filters.js:347
+#: templates/js/table_filters.js:352
msgid "Purchasable"
msgstr "Käuflich"
@@ -7554,10 +7621,6 @@ msgstr "Spalten"
msgid "All"
msgstr "Alle"
-#: templates/modals.html:21 templates/modals.html:47
-msgid "Form errors exist"
-msgstr "Fehler in Formular"
-
#: templates/navbar.html:13
msgid "Toggle navigation"
msgstr "Navigation ein-/ausklappen"
@@ -7574,7 +7637,7 @@ msgstr "Verkaufen"
msgid "Scan Barcode"
msgstr "Barcode scannen"
-#: templates/navbar.html:77 users/models.py:38
+#: templates/navbar.html:77 users/models.py:39
msgid "Admin"
msgstr "Admin"
@@ -7794,35 +7857,35 @@ msgstr "Berechtigungen"
msgid "Important dates"
msgstr "wichtige Daten"
-#: users/models.py:174
+#: users/models.py:175
msgid "Permission set"
msgstr "Berechtigung geändert"
-#: users/models.py:182
+#: users/models.py:183
msgid "Group"
msgstr "Gruppe"
-#: users/models.py:185
+#: users/models.py:186
msgid "View"
msgstr "Ansicht"
-#: users/models.py:185
+#: users/models.py:186
msgid "Permission to view items"
msgstr "Berechtigung Einträge anzuzeigen"
-#: users/models.py:187
+#: users/models.py:188
msgid "Permission to add items"
msgstr "Berechtigung Einträge zu erstellen"
-#: users/models.py:189
+#: users/models.py:190
msgid "Change"
msgstr "Ändern"
-#: users/models.py:189
+#: users/models.py:190
msgid "Permissions to edit items"
msgstr "Berechtigungen Einträge zu ändern"
-#: users/models.py:191
+#: users/models.py:192
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index b7f022a199..ba01b18cb4 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-07-02 04:52+0000\n"
+"POT-Creation-Date: 2021-07-03 12:15+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -30,14 +30,14 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: InvenTree/fields.py:84
+#: InvenTree/fields.py:99
msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
-#: order/forms.py:75 part/forms.py:134
+#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
+#: order/forms.py:74 part/forms.py:118 templates/js/forms.js:486
msgid "Confirm"
msgstr ""
@@ -78,8 +78,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
-#: stock/views.py:1795
+#: InvenTree/helpers.py:403 order/models.py:311 order/models.py:421
+#: stock/views.py:1627
msgid "Invalid quantity provided"
msgstr ""
@@ -107,49 +107,53 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1758
+#: InvenTree/models.py:61 stock/models.py:1778
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:60
+#: InvenTree/models.py:62
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:62 templates/attachment_table.html:16
+#: InvenTree/models.py:64 templates/js/attachment.js:52
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:62
+#: InvenTree/models.py:64
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2043
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1179
+#: templates/js/stock.js:1193
msgid "User"
msgstr ""
-#: InvenTree/models.py:72
+#: InvenTree/models.py:74
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396
-#: label/models.py:102 part/models.py:671 part/models.py:2163
+#: InvenTree/models.py:102
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:414
+#: label/models.py:103 part/models.py:680 part/models.py:2192
#: part/templates/part/params.html:27 report/models.py:180
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/company.js:235 templates/js/part.js:118
-#: templates/js/part.js:642 templates/js/stock.js:972
+#: templates/js/company.js:359 templates/js/part.js:118
+#: templates/js/part.js:642 templates/js/stock.js:986
msgid "Name"
msgstr ""
-#: InvenTree/models.py:114 build/models.py:135
-#: build/templates/build/detail.html:21 company/models.py:339
-#: company/models.py:532 company/templates/company/detail.html:27
+#: InvenTree/models.py:125 build/models.py:139
+#: build/templates/build/detail.html:21 company/models.py:353
+#: company/models.py:554 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
-#: part/models.py:695 part/templates/part/detail.html:54
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:110
+#: order/models.py:154 order/templates/order/purchase_order_detail.html:174
+#: part/models.py:704 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
#: report/templates/report/inventree_build_order_base.html:118
@@ -157,39 +161,43 @@ msgstr ""
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
#: templates/js/build.js:834 templates/js/build.js:1102
-#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
+#: templates/js/company.js:125 templates/js/order.js:245
+#: templates/js/order.js:347 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
-#: templates/js/stock.js:557 templates/js/stock.js:984
-#: templates/js/stock.js:1029
+#: templates/js/stock.js:557 templates/js/stock.js:998
+#: templates/js/stock.js:1043
msgid "Description"
msgstr ""
-#: InvenTree/models.py:115
+#: InvenTree/models.py:126
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:123
+#: InvenTree/models.py:134
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:504
-msgid "English"
+#: InvenTree/serializers.py:52
+msgid "Must be a valid number"
msgstr ""
#: InvenTree/settings.py:505
-msgid "French"
+msgid "English"
msgstr ""
#: InvenTree/settings.py:506
-msgid "German"
+msgid "French"
msgstr ""
#: InvenTree/settings.py:507
-msgid "Polish"
+msgid "German"
msgstr ""
#: InvenTree/settings.py:508
+msgid "Polish"
+msgstr ""
+
+#: InvenTree/settings.py:509
msgid "Turkish"
msgstr ""
@@ -447,50 +455,48 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
+#: build/templates/build/detail.html:121
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:881 templates/js/order.js:200
-#: templates/js/order.js:298
+#: templates/js/build.js:881 templates/js/order.js:262
+#: templates/js/order.js:365
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:225
+#: build/forms.py:43 build/models.py:229
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1354
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:31 common/models.py:741
-#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
-#: order/forms.py:289 order/models.py:613 order/models.py:835
-#: order/templates/order/order_wizard/match_parts.html:30
+#: company/forms.py:124 company/templates/company/supplier_part_pricing.html:79
+#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:702
+#: order/models.py:941 order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/purchase_order_detail.html:179
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:162
-#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
-#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
-#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:203
-#: part/templates/part/part_pricing.html:16
-#: part/templates/part/sale_prices.html:85
+#: order/templates/order/purchase_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:80
+#: order/templates/order/sales_order_detail.html:87
+#: order/templates/order/sales_order_detail.html:172
+#: order/templates/order/sales_order_detail.html:244 part/forms.py:314
+#: part/forms.py:344 part/forms.py:360 part/forms.py:376 part/models.py:2330
+#: part/templates/part/part_pricing.html:16 part/templates/part/prices.html:377
+#: part/templates/part/prices.html:474
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308
+#: stock/forms.py:142 stock/forms.py:275
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
-#: templates/js/build.js:1112 templates/js/order.js:393
-#: templates/js/part.js:796 templates/js/stock.js:1164
-#: templates/js/stock.js:1383
+#: templates/js/build.js:1112 templates/js/model_renderers.js:43
+#: templates/js/order.js:460 templates/js/part.js:827 templates/js/part.js:949
+#: templates/js/part.js:1005 templates/js/stock.js:1178
+#: templates/js/stock.js:1397
msgid "Quantity"
msgstr ""
@@ -502,7 +508,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:114 stock/forms.py:85
msgid "Serial Numbers"
msgstr ""
@@ -531,12 +537,12 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: stock/forms.py:347 stock/templates/stock/item_base.html:285
+#: stock/forms.py:314 stock/templates/stock/item_base.html:285
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:586 templates/js/order.js:378
-#: templates/js/stock.js:643 templates/js/stock.js:1056
+#: templates/js/build.js:586 templates/js/order.js:445
+#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr ""
@@ -545,13 +551,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:465
+#: build/templates/build/detail.html:59 order/models.py:545
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:868
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:630 templates/js/stock.js:1133
-#: templates/js/stock.js:1399
+#: templates/js/order.js:249 templates/js/order.js:352
+#: templates/js/stock.js:630 templates/js/stock.js:1147
+#: templates/js/stock.js:1413
msgid "Status"
msgstr ""
@@ -583,60 +589,60 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:66 build/templates/build/build_base.html:9
+#: build/models.py:70 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:195
msgid "Build Order"
msgstr ""
-#: build/models.py:67 build/templates/build/index.html:8
+#: build/models.py:71 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
-#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:191
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
+#: templates/InvenTree/settings/tabs.html:34 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:127
+#: build/models.py:131
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:98 order/models.py:615
-#: order/templates/order/purchase_order_detail.html:174
-#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
+#: build/models.py:132 order/models.py:242 order/models.py:529
+#: order/models.py:709 order/templates/order/purchase_order_detail.html:201
+#: order/templates/order/sales_order_detail.html:239 part/models.py:2339
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr ""
-#: build/models.py:138
+#: build/models.py:142
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:147 build/templates/build/build_base.html:163
+#: build/models.py:151 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr ""
-#: build/models.py:148
+#: build/models.py:152
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:153 build/templates/build/auto_allocate.html:16
+#: build/models.py:157 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:657 order/models.py:712
+#: build/templates/build/detail.html:26 company/models.py:689
+#: order/models.py:755 order/models.py:814
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:132
+#: order/templates/order/purchase_order_detail.html:159
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:214 part/models.py:321
-#: part/models.py:1975 part/models.py:1987 part/models.py:2002
-#: part/models.py:2020 part/models.py:2095 part/models.py:2191
-#: part/models.py:2277 part/templates/part/part_app_base.html:8
+#: order/templates/order/sales_order_detail.html:224 part/models.py:325
+#: part/models.py:1988 part/models.py:2004 part/models.py:2023
+#: part/models.py:2041 part/models.py:2120 part/models.py:2224
+#: part/models.py:2314 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
@@ -645,222 +651,222 @@ msgstr ""
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
#: templates/js/build.js:552 templates/js/build.js:839
-#: templates/js/build.js:1079 templates/js/company.js:140
-#: templates/js/company.js:339 templates/js/part.js:241
+#: templates/js/build.js:1079 templates/js/company.js:264
+#: templates/js/company.js:464 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
-#: templates/js/stock.js:1371
+#: templates/js/stock.js:1385
msgid "Part"
msgstr ""
-#: build/models.py:161
+#: build/models.py:165
msgid "Select part to build"
msgstr ""
-#: build/models.py:166
+#: build/models.py:170
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:170
+#: build/models.py:174
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:175
+#: build/models.py:179
msgid "Source Location"
msgstr ""
-#: build/models.py:179
+#: build/models.py:183
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:184
+#: build/models.py:188
msgid "Destination Location"
msgstr ""
-#: build/models.py:188
+#: build/models.py:192
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:192
+#: build/models.py:196
msgid "Build Quantity"
msgstr ""
-#: build/models.py:195
+#: build/models.py:199
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:199
+#: build/models.py:203
msgid "Completed items"
msgstr ""
-#: build/models.py:201
+#: build/models.py:205
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:205 part/templates/part/part_base.html:167
+#: build/models.py:209 part/templates/part/part_base.html:167
msgid "Build Status"
msgstr ""
-#: build/models.py:209
+#: build/models.py:213
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:462
+#: build/models.py:217 stock/models.py:470
msgid "Batch Code"
msgstr ""
-#: build/models.py:217
+#: build/models.py:221
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:104 part/models.py:867
-#: part/templates/part/detail.html:126 templates/js/order.js:293
+#: build/models.py:224 order/models.py:158 part/models.py:876
+#: part/templates/part/detail.html:126 templates/js/order.js:360
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:471
+#: build/models.py:228 order/models.py:551
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:217 templates/js/build.js:886
+#: build/models.py:232 order/models.py:284 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
-#: build/models.py:234
+#: build/models.py:238
msgid "completed by"
msgstr ""
-#: build/models.py:242
+#: build/models.py:246
msgid "Issued by"
msgstr ""
-#: build/models.py:243
+#: build/models.py:247
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:118
+#: build/models.py:255 build/templates/build/build_base.html:184
+#: build/templates/build/detail.html:105 order/models.py:172
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:871
+#: order/templates/order/sales_order_base.html:140 part/models.py:880
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:252
+#: build/models.py:256
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:257 build/templates/build/detail.html:91
+#: build/models.py:261 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
#: company/templates/company/manufacturer_part_detail.html:28
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:456 stock/templates/stock/item_base.html:345
+#: stock/models.py:464 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:458
+#: build/models.py:262 part/models.py:738 stock/models.py:466
msgid "Link to external URL"
msgstr ""
-#: build/models.py:262 build/templates/build/navbar.html:53
-#: company/models.py:132 company/models.py:539
+#: build/models.py:266 build/templates/build/navbar.html:53
+#: company/models.py:141 company/models.py:561
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:122
-#: order/models.py:617 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:176
+#: order/models.py:711 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/purchase_order_detail.html:243
-#: order/templates/order/sales_order_detail.html:309
+#: order/templates/order/purchase_order_detail.html:270
+#: order/templates/order/sales_order_detail.html:319
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:145
+#: order/templates/order/so_navbar.html:36 part/models.py:865
+#: part/templates/part/navbar.html:133
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
+#: stock/forms.py:140 stock/forms.py:284 stock/forms.py:316 stock/forms.py:344
+#: stock/models.py:536 stock/models.py:1678 stock/models.py:1784
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:713
msgid "Notes"
msgstr ""
-#: build/models.py:263
+#: build/models.py:267
msgid "Extra build notes"
msgstr ""
-#: build/models.py:740
+#: build/models.py:744
msgid "No build output specified"
msgstr ""
-#: build/models.py:743
+#: build/models.py:747
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:746
+#: build/models.py:750
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1152
+#: build/models.py:1160
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1177
+#: build/models.py:1185
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1181
+#: build/models.py:1189
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:809
+#: build/models.py:1196 order/models.py:915
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:812
+#: build/models.py:1200 order/models.py:918
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1204
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1264
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1316 stock/templates/stock/item_base.html:317
+#: build/models.py:1324 stock/templates/stock/item_base.html:317
#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1317
+#: build/models.py:1325
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1333 stock/templates/stock/item_base.html:8
+#: build/models.py:1341 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
#: templates/js/build.js:211 templates/js/build.js:929
-#: templates/js/order.js:366 templates/js/order.js:371
-#: templates/js/stock.js:1115
+#: templates/js/order.js:433 templates/js/order.js:438
+#: templates/js/stock.js:1129
msgid "Stock Item"
msgstr ""
-#: build/models.py:1334
+#: build/models.py:1342
msgid "Source stock item"
msgstr ""
-#: build/models.py:1347
+#: build/models.py:1355
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1355
+#: build/models.py:1363
msgid "Install into"
msgstr ""
-#: build/models.py:1356
+#: build/models.py:1364
msgid "Destination stock item"
msgstr ""
@@ -894,7 +900,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:724
#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -913,23 +919,52 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:160
+#: order/templates/order/sales_order_detail.html:85
+#: order/templates/order/sales_order_detail.html:170
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:450 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:570
+#: stock/models.py:458 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570 templates/js/model_renderers.js:41
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
-#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:124
+#: part/templates/part/navbar.html:127 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
+#: build/templates/build/attachments.html:51
+#: order/templates/order/so_attachments.html:79
+#: part/templates/part/attachments.html:81
+#: stock/templates/stock/item_attachments.html:81
+#: templates/attachment_table.html:6
+msgid "Add Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:69
+#: order/templates/order/so_attachments.html:52
+#: part/templates/part/attachments.html:35
+#: stock/templates/stock/item_attachments.html:49
+msgid "Edit Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:76
+#: order/templates/order/so_attachments.html:58
+#: part/templates/part/attachments.html:44
+#: stock/templates/stock/item_attachments.html:58
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/attachments.html:77
+#: order/templates/order/so_attachments.html:59
+#: part/templates/part/attachments.html:45
+#: stock/templates/stock/item_attachments.html:59
+msgid "Delete Attachment"
+msgstr ""
+
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
msgstr ""
@@ -990,8 +1025,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
#: order/templates/order/sales_order_base.html:88
-#: templates/js/table_filters.js:245 templates/js/table_filters.js:264
-#: templates/js/table_filters.js:281
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:269
+#: templates/js/table_filters.js:286
msgid "Overdue"
msgstr ""
@@ -1037,13 +1072,13 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:710
+#: build/templates/build/detail.html:84 order/models.py:812
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:279 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:279 templates/js/order.js:307
msgid "Sales Order"
msgstr ""
@@ -1184,10 +1219,10 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
-#: order/templates/order/purchase_order_detail.html:239
-#: order/templates/order/receive_parts.html:25 stock/forms.py:169
-#: stock/forms.py:375
+#: build/templates/build/detail.html:46 order/forms.py:88 order/models.py:771
+#: order/templates/order/purchase_order_detail.html:266
+#: order/templates/order/receive_parts.html:25 stock/forms.py:136
+#: stock/forms.py:342
msgid "Destination"
msgstr ""
@@ -1197,7 +1232,7 @@ msgstr ""
#: build/templates/build/detail.html:70
#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638
-#: templates/js/stock.js:1406 templates/js/table_filters.js:112
+#: templates/js/stock.js:1420 templates/js/table_filters.js:112
#: templates/js/table_filters.js:206
msgid "Batch"
msgstr ""
@@ -1252,7 +1287,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
-#: templates/js/stock.js:1044
+#: templates/js/stock.js:1058
msgid "Details"
msgstr ""
@@ -1288,7 +1323,6 @@ msgstr ""
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487
-#: stock/templates/stock/item_base.html:497
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1317,7 +1351,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/views.py:1821
+#: build/views.py:184 stock/views.py:1653
msgid "Serial numbers already exist"
msgstr ""
@@ -1333,7 +1367,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:281 build/views.py:371 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:346
msgid "Check the confirmation box"
msgstr ""
@@ -1430,31 +1464,6 @@ msgstr ""
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1070
-msgid "Add Build Order Attachment"
-msgstr ""
-
-#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
-#: stock/views.py:277
-msgid "Added attachment"
-msgstr ""
-
-#: build/views.py:1119 order/views.py:196 order/views.py:217
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/views.py:1129 order/views.py:200 order/views.py:221
-msgid "Attachment updated"
-msgstr ""
-
-#: build/views.py:1139 order/views.py:236 order/views.py:250
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
-msgid "Deleted attachment"
-msgstr ""
-
#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1471,7 +1480,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/attachment_table.html:15
+#: common/forms.py:34 templates/js/attachment.js:42
msgid "File"
msgstr ""
@@ -1504,7 +1513,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:72 company/models.py:94 company/models.py:95
+#: common/models.py:72 company/models.py:99 company/models.py:100
msgid "Company name"
msgstr ""
@@ -1608,9 +1617,9 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
-#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
-#: templates/js/table_filters.js:315
+#: common/models.py:160 part/models.py:2226 part/templates/part/detail.html:160
+#: report/models.py:186 stock/forms.py:226 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:320
msgid "Template"
msgstr ""
@@ -1618,8 +1627,8 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
+#: common/models.py:167 part/models.py:828 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:128 templates/js/table_filters.js:332
msgid "Assembly"
msgstr ""
@@ -1627,8 +1636,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:331
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:336
msgid "Component"
msgstr ""
@@ -1636,7 +1645,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:845 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
@@ -1644,8 +1653,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:339
+#: common/models.py:188 part/models.py:850 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:344
msgid "Salable"
msgstr ""
@@ -1653,8 +1662,8 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
+#: common/models.py:195 part/models.py:840 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:348
msgid "Trackable"
msgstr ""
@@ -1662,7 +1671,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:860 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -1859,13 +1868,12 @@ msgstr ""
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:742 company/forms.py:190
+#: common/models.py:742 company/forms.py:125
msgid "Price break quantity"
msgstr ""
-#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
-#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
+#: templates/js/part.js:832
msgid "Price"
msgstr ""
@@ -1895,16 +1903,16 @@ msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:605
+#: order/templates/order/po_navbar.html:22 order/views.py:337
#: part/templates/part/bom_upload/upload_file.html:27
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:621
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:338 part/templates/part/bom_upload/select_fields.html:58
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr ""
@@ -1929,269 +1937,277 @@ msgstr ""
msgid "Previous Step"
msgstr ""
-#: company/forms.py:37 company/models.py:142
-#: company/templates/company/detail.html:42
-msgid "Currency"
-msgstr ""
-
-#: company/forms.py:38 company/models.py:144
-msgid "Default currency used for this company"
-msgstr ""
-
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:26 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:27 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:132 templates/js/part.js:787
+#: company/forms.py:67 templates/js/part.js:940
msgid "Single Price"
msgstr ""
-#: company/forms.py:133
+#: company/forms.py:68
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:141 company/models.py:321
+#: company/forms.py:76 company/models.py:335
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:147 company/models.py:328
+#: company/forms.py:82 company/models.py:342
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:149 company/models.py:327
+#: company/forms.py:84 company/models.py:341
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:162 part/bom.py:171
-#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408
+#: order/templates/order/purchase_order_detail.html:189 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:305 templates/js/company.js:533
msgid "MPN"
msgstr ""
-#: company/models.py:99
+#: company/models.py:104
msgid "Company description"
msgstr ""
-#: company/models.py:100
+#: company/models.py:105
msgid "Description of the company"
msgstr ""
-#: company/models.py:104 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:33 templates/js/company.js:60
+#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:129
msgid "Website"
msgstr ""
-#: company/models.py:104
+#: company/models.py:112
msgid "Company website URL"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:77
+#: company/models.py:116 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:108
+#: company/models.py:117
msgid "Company address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:120
msgid "Phone number"
msgstr ""
-#: company/models.py:112
+#: company/models.py:121
msgid "Contact phone number"
msgstr ""
-#: company/models.py:115 company/templates/company/company_base.html:91
+#: company/models.py:124 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:115
+#: company/models.py:124
msgid "Contact email address"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:98
+#: company/models.py:127 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:119
+#: company/models.py:128
msgid "Point of contact"
msgstr ""
-#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:102 part/models.py:728
+#: company/models.py:130 company/models.py:347 company/models.py:548
+#: order/models.py:156 part/models.py:737
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/company.js:188 templates/js/company.js:419
+#: templates/js/company.js:312 templates/js/company.js:544
#: templates/js/part.js:498
msgid "Link"
msgstr ""
-#: company/models.py:121
+#: company/models.py:130
msgid "Link to external company information"
msgstr ""
-#: company/models.py:129 part/models.py:738
+#: company/models.py:138 part/models.py:747
msgid "Image"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "is customer"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "is supplier"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "is manufacturer"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:403
+#: company/models.py:151 company/serializers.py:259
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:154
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:319 company/models.py:519 stock/models.py:411
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1603
+#: company/models.py:323 company/models.py:523 order/views.py:1127
msgid "Select part"
msgstr ""
-#: company/models.py:320 company/templates/company/detail.html:57
+#: company/models.py:334 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
#: part/bom.py:241 stock/templates/stock/item_base.html:352
-#: templates/js/company.js:44 templates/js/company.js:165
-#: templates/js/company.js:390
+#: templates/js/company.js:113 templates/js/company.js:289
+#: templates/js/company.js:515
msgid "Manufacturer"
msgstr ""
-#: company/models.py:334
+#: company/models.py:348
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:340
+#: company/models.py:354
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:390 company/models.py:520
+#: company/models.py:408 company/models.py:542
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:362
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:397
+#: company/models.py:415
msgid "Parameter name"
msgstr ""
-#: company/models.py:403 part/templates/part/params.html:28
+#: company/models.py:421 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
-#: templates/js/company.js:241 templates/js/stock.js:137
+#: stock/models.py:1771 templates/InvenTree/settings/header.html:8
+#: templates/js/company.js:365 templates/js/stock.js:137
msgid "Value"
msgstr ""
-#: company/models.py:404
+#: company/models.py:422
msgid "Parameter value"
msgstr ""
-#: company/models.py:410 part/models.py:813 part/models.py:2165
+#: company/models.py:428 part/models.py:822 part/models.py:2194
#: part/templates/part/detail.html:106 part/templates/part/params.html:29
-#: templates/js/company.js:247
+#: templates/js/company.js:371
msgid "Units"
msgstr ""
-#: company/models.py:411
+#: company/models.py:429
msgid "Parameter units"
msgstr ""
-#: company/models.py:507 company/templates/company/detail.html:62
+#: company/models.py:529 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:256
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
-#: templates/js/company.js:48 templates/js/company.js:364
-#: templates/js/order.js:170
+#: templates/js/company.js:117 templates/js/company.js:489
+#: templates/js/order.js:232
msgid "Supplier"
msgstr ""
-#: company/models.py:508
+#: company/models.py:530
msgid "Select supplier"
msgstr ""
-#: company/models.py:513 company/templates/company/supplier_part_base.html:88
+#: company/models.py:535 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:153 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:180 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:514
+#: company/models.py:536
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:521
+#: company/models.py:543
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:527
+#: company/models.py:549
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:533
+#: company/models.py:555
msgid "Supplier part description"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part_base.html:116
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305
+#: company/models.py:560 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2342
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "base cost"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:427 stock/templates/stock/item_base.html:310
-#: templates/js/stock.js:695
+#: company/models.py:566 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:435 stock/templates/stock/item_base.html:310
+#: templates/js/stock.js:709
msgid "Packaging"
msgstr ""
-#: company/models.py:544
+#: company/models.py:566
msgid "Part packaging"
msgstr ""
-#: company/models.py:546 part/models.py:1608
+#: company/models.py:568 part/models.py:1617
msgid "multiple"
msgstr ""
-#: company/models.py:546
+#: company/models.py:568
msgid "Order multiple"
msgstr ""
+#: company/serializers.py:68
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:69
+msgid "Currency Code"
+msgstr ""
+
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
#: company/templates/company/navbar.html:65 templates/js/build.js:563
@@ -2200,7 +2216,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:102
msgid "Company"
msgstr ""
@@ -2214,7 +2230,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:313
+#: company/templates/company/company_base.html:46 templates/js/order.js:61
msgid "Create Purchase Order"
msgstr ""
@@ -2222,7 +2238,8 @@ msgstr ""
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56 company/views.py:326
+#: company/templates/company/company_base.html:56
+#: company/templates/company/company_base.html:126
msgid "Delete Company"
msgstr ""
@@ -2236,16 +2253,9 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/delete.html:7
-#, python-format
-msgid "Are you sure you want to delete company '%(name)s'?"
-msgstr ""
-
-#: company/templates/company/delete.html:12
-#, python-format
-msgid ""
-"There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be deleted."
+#: company/templates/company/company_base.html:166
+#: part/templates/part/part_base.html:307
+msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:21
@@ -2260,11 +2270,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:460
-#: order/templates/order/sales_order_base.html:94 stock/models.py:445
-#: stock/models.py:446 stock/templates/stock/item_base.html:262
-#: templates/js/company.js:40 templates/js/order.js:267
-#: templates/js/stock.js:1097
+#: company/templates/company/detail.html:67 order/models.py:540
+#: order/templates/order/sales_order_base.html:94 stock/models.py:453
+#: stock/models.py:454 stock/templates/stock/item_base.html:262
+#: templates/js/company.js:109 templates/js/order.js:329
+#: templates/js/stock.js:1111
msgid "Customer"
msgstr ""
@@ -2285,6 +2295,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
+#: company/templates/company/manufacturer_part_suppliers.html:46
#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
@@ -2307,26 +2318,25 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:68
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:127
-#: templates/js/stock.js:1312
+#: templates/js/stock.js:1326
msgid "New Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:69
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:72
-#: company/views.py:71 part/templates/part/manufacturer.html:52
-#: part/templates/part/supplier.html:56
+#: company/templates/company/detail_manufacturer_part.html:74
+#: company/views.py:66 part/templates/part/manufacturer.html:52
+#: part/templates/part/supplier.html:55
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:73
-#: company/views.py:284
+#: company/templates/company/detail_manufacturer_part.html:75
msgid "Create new Manufacturer"
msgstr ""
@@ -2337,7 +2347,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:123 part/templates/part/category.html:137
-#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
+#: part/templates/part/stock.html:55 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2349,26 +2359,24 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:44
-#: order/templates/order/purchase_order_detail.html:50
+#: part/templates/part/part_base.html:429
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1318
+#: part/templates/part/part_base.html:428 part/templates/part/supplier.html:17
+#: templates/js/stock.js:1332
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
-#: company/templates/company/manufacturer_part_suppliers.html:82
-#: company/views.py:64 order/templates/order/purchase_orders.html:185
-#: part/templates/part/supplier.html:50
+#: company/templates/company/manufacturer_part_suppliers.html:96
+#: company/views.py:60 part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
-#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:186
+#: company/templates/company/detail_supplier_part.html:73
msgid "Create new Supplier"
msgstr ""
@@ -2403,20 +2411,19 @@ msgstr ""
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:6
-msgid "Are you sure you want to delete the following Manufacturer Parts?"
+#: company/templates/company/manufacturer_part_base.html:125
+msgid "Edit Manufacturer Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:36
-#, python-format
-msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
+#: company/templates/company/manufacturer_part_base.html:134
+msgid "Delete Manufacturer Part"
msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:87
-#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
-#: templates/navbar.html:35
+#: company/views.py:59 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 part/templates/part/prices.html:153
+#: templates/InvenTree/search.html:316 templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2427,7 +2434,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:39 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:53
#: 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:128 templates/InvenTree/search.html:196
@@ -2453,9 +2460,11 @@ msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: company/templates/company/manufacturer_part_suppliers.html:142
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:191
+#: stock/views.py:855 templates/js/company.js:203 users/models.py:192
msgid "Delete"
msgstr ""
@@ -2473,11 +2482,27 @@ msgstr ""
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part_suppliers.html:83
+#: company/templates/company/manufacturer_part_suppliers.html:48
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:80
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:97
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
msgstr ""
+#: company/templates/company/manufacturer_part_suppliers.html:127
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:139
+msgid "Delete Parameters"
+msgstr ""
+
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
msgid "Manufactured Parts"
@@ -2494,8 +2519,8 @@ msgstr ""
#: stock/templates/stock/location.html:136
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
-#: templates/InvenTree/search.html:198 templates/js/stock.js:996
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2505,11 +2530,11 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: part/templates/part/navbar.html:101 part/templates/part/navbar.html:104
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:236
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
-#: users/models.py:45
+#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2518,10 +2543,10 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:213
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
-#: users/models.py:44
+#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2550,8 +2575,9 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
-#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:420
+#: stock/templates/stock/item_base.html:374 templates/js/company.js:505
+#: templates/js/stock.js:690
msgid "Supplier Part"
msgstr ""
@@ -2596,459 +2622,401 @@ msgid "Order Part"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:11
+#: part/templates/part/navbar.html:74
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2918
+#: company/templates/company/supplier_part_pricing.html:19
+#: company/templates/company/supplier_part_pricing.html:118
+#: part/templates/part/prices.html:264 part/views.py:2788
msgid "Add Price Break"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:38
-#: part/templates/part/sale_prices.html:46
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:89
-#: part/templates/part/sale_prices.html:97
+#: company/templates/company/supplier_part_pricing.html:52 part/views.py:2850
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:66 part/views.py:2836
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:91
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:90
-#: part/templates/part/sale_prices.html:98
+#: company/templates/company/supplier_part_pricing.html:92
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:81
-#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
-#: templates/navbar.html:36
+#: company/views.py:65 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 part/templates/part/prices.html:157
+#: templates/InvenTree/search.html:306 templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
-#: company/views.py:77 templates/InvenTree/search.html:336
+#: company/views.py:71 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:187
+#: company/views.py:72
msgid "New Customer"
msgstr ""
-#: company/views.py:86
+#: company/views.py:79
msgid "Companies"
msgstr ""
-#: company/views.py:87
+#: company/views.py:80
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:1115
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:1147
+#: company/views.py:190 part/views.py:1039
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:1154
+#: company/views.py:197 part/views.py:1046
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:1163
+#: company/views.py:206 part/views.py:1055
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: company/views.py:243
-msgid "Update Company Image"
-msgstr ""
-
-#: company/views.py:249
-msgid "Updated company image"
-msgstr ""
-
-#: company/views.py:259
-msgid "Edit Company"
-msgstr ""
-
-#: company/views.py:264
-msgid "Edited company information"
-msgstr ""
-
-#: company/views.py:287 order/templates/order/sales_orders.html:188
-msgid "Create new Customer"
-msgstr ""
-
-#: company/views.py:289
-msgid "Create new Company"
-msgstr ""
-
-#: company/views.py:316
-msgid "Created new company"
-msgstr ""
-
-#: company/views.py:332
-msgid "Company was deleted"
-msgstr ""
-
-#: company/views.py:357
-msgid "Edit Manufacturer Part"
-msgstr ""
-
-#: company/views.py:366
+#: company/views.py:251
msgid "Create New Manufacturer Part"
msgstr ""
-#: company/views.py:440
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: company/views.py:514
-msgid "Add Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:548
-msgid "Edit Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:588
+#: company/views.py:334
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:639 templates/js/stock.js:1319
+#: company/views.py:385 templates/js/stock.js:1333
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:783
+#: company/views.py:529
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2922
-msgid "Added new price break"
-msgstr ""
-
-#: company/views.py:916 part/views.py:2966
-msgid "Edit Price Break"
-msgstr ""
-
-#: company/views.py:931 part/views.py:2980
-msgid "Delete Price Break"
-msgstr ""
-
#: label/api.py:56 report/api.py:201
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:103
+#: label/models.py:104
msgid "Label name"
msgstr ""
-#: label/models.py:110
+#: label/models.py:111
msgid "Label description"
msgstr ""
-#: label/models.py:117 stock/forms.py:202
+#: label/models.py:118 stock/forms.py:169
msgid "Label"
msgstr ""
-#: label/models.py:118
+#: label/models.py:119
msgid "Label template file"
msgstr ""
-#: label/models.py:124 report/models.py:297
+#: label/models.py:125 report/models.py:297
msgid "Enabled"
msgstr ""
-#: label/models.py:125
+#: label/models.py:126
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Width [mm]"
msgstr ""
-#: label/models.py:131
+#: label/models.py:132
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Height [mm]"
msgstr ""
-#: label/models.py:138
+#: label/models.py:139
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:144 report/models.py:290
+#: label/models.py:145 report/models.py:290
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:145
+#: label/models.py:146
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:244 label/models.py:297
+#: label/models.py:249 label/models.py:306
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:245 label/models.py:298 report/models.py:317
+#: label/models.py:250 label/models.py:307 report/models.py:317
#: report/models.py:440 report/models.py:474
msgid "Filters"
msgstr ""
-#: order/forms.py:31 order/templates/order/order_base.html:47
+#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:42 order/templates/order/order_base.html:54
+#: order/forms.py:41 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
+#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:75 order/templates/order/sales_order_base.html:58
+#: order/forms.py:74 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:90
+#: order/forms.py:89
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:112
-msgid "Purchase Order reference"
-msgstr ""
-
-#: order/forms.py:119
-msgid "Target date for order delivery. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:147
-msgid "Enter sales order number"
-msgstr ""
-
-#: order/forms.py:154 order/models.py:472
-msgid "Target date for order completion. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:246
+#: order/forms.py:116
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:252
+#: order/forms.py:122
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:98
-msgid "Order reference"
-msgstr ""
-
-#: order/models.py:100
+#: order/models.py:154
msgid "Order description"
msgstr ""
-#: order/models.py:102
+#: order/models.py:156
msgid "Link to external page"
msgstr ""
-#: order/models.py:110 part/templates/part/detail.html:132
+#: order/models.py:164 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:117
+#: order/models.py:171
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:176
msgid "Order notes"
msgstr ""
-#: order/models.py:181 order/models.py:465
+#: order/models.py:243 order/models.py:530
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:248 order/models.py:545
msgid "Purchase order status"
msgstr ""
-#: order/models.py:190
+#: order/models.py:257
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:193 order/templates/order/order_base.html:98
-#: templates/js/order.js:179
+#: order/models.py:260 order/templates/order/order_base.html:98
+#: templates/js/order.js:241
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:193
+#: order/models.py:260
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:200
+#: order/models.py:267
msgid "received by"
msgstr ""
-#: order/models.py:205
+#: order/models.py:272
msgid "Issue Date"
msgstr ""
-#: order/models.py:206
+#: order/models.py:273
msgid "Date order was issued"
msgstr ""
-#: order/models.py:211
+#: order/models.py:278
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:212
+#: order/models.py:279
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:218
+#: order/models.py:285
msgid "Date order was completed"
msgstr ""
-#: order/models.py:242 part/views.py:1853 stock/models.py:300
-#: stock/models.py:1015
+#: order/models.py:309 part/views.py:1730 stock/models.py:308
+#: stock/models.py:1023
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:247
+#: order/models.py:314
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:345
+#: order/models.py:412
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:349
+#: order/models.py:416
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:351
+#: order/models.py:418
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:461
+#: order/models.py:541
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer Reference "
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:475 templates/js/order.js:303
+#: order/models.py:552
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:555 templates/js/order.js:370
msgid "Shipment Date"
msgstr ""
-#: order/models.py:482
+#: order/models.py:562
msgid "shipped by"
msgstr ""
-#: order/models.py:526
+#: order/models.py:606
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:613
+#: order/models.py:703
msgid "Item quantity"
msgstr ""
-#: order/models.py:615
+#: order/models.py:709
msgid "Line item reference"
msgstr ""
-#: order/models.py:617
+#: order/models.py:711
msgid "Line item notes"
msgstr ""
-#: order/models.py:643 order/models.py:710 templates/js/order.js:353
+#: order/models.py:741 order/models.py:812 templates/js/order.js:420
msgid "Order"
msgstr ""
-#: order/models.py:644 order/templates/order/order_base.html:9
+#: order/models.py:742 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
-#: templates/js/stock.js:669 templates/js/stock.js:1078
+#: stock/templates/stock/item_base.html:324 templates/js/order.js:210
+#: templates/js/stock.js:669 templates/js/stock.js:1092
msgid "Purchase Order"
msgstr ""
-#: order/models.py:658
+#: order/models.py:756
msgid "Supplier part"
msgstr ""
-#: order/models.py:661 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:219
+#: order/models.py:759 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:246
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:661
+#: order/models.py:759
msgid "Number of items received"
msgstr ""
-#: order/models.py:667 stock/models.py:537
-#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
+#: order/models.py:765 part/templates/part/prices.html:166 stock/models.py:545
+#: stock/templates/stock/item_base.html:331 templates/js/stock.js:704
msgid "Purchase Price"
msgstr ""
-#: order/models.py:668
+#: order/models.py:766
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:676
+#: order/models.py:774
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:718 part/templates/part/navbar.html:110
-#: part/templates/part/order_prices.html:108
-#: part/templates/part/part_pricing.html:97
+#: order/models.py:820 part/templates/part/part_pricing.html:97
+#: part/templates/part/prices.html:103 part/templates/part/prices.html:278
msgid "Sale Price"
msgstr ""
-#: order/models.py:719
+#: order/models.py:821
msgid "Unit sale price"
msgstr ""
-#: order/models.py:794 order/models.py:796
+#: order/models.py:900 order/models.py:902
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:800
+#: order/models.py:906
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:802
+#: order/models.py:908
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:805
+#: order/models.py:911
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:815
+#: order/models.py:921
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:820
+#: order/models.py:926
msgid "Line"
msgstr ""
-#: order/models.py:831
+#: order/models.py:937
msgid "Item"
msgstr ""
-#: order/models.py:832
+#: order/models.py:938
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:835
+#: order/models.py:941
msgid "Enter stock allocation quantity"
msgstr ""
+#: order/serializers.py:139
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Sale price currency"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
#: templates/attachment_delete.html:5
@@ -3093,16 +3061,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:180
-#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/order_base.html:188
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:199
+#: order/templates/order/purchase_order_detail.html:127
#: part/templates/part/category.html:217 part/templates/part/category.html:259
-#: stock/templates/stock/location.html:191 templates/js/stock.js:736
-#: templates/js/stock.js:1324
+#: part/templates/part/part_base.html:415
+#: stock/templates/stock/location.html:191 templates/js/stock.js:750
+#: templates/js/stock.js:1338
msgid "New Location"
msgstr ""
-#: order/templates/order/order_base.html:181
-#: order/templates/order/purchase_order_detail.html:101
+#: order/templates/order/order_base.html:200
+#: order/templates/order/purchase_order_detail.html:128
+#: part/templates/part/part_base.html:416
#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3255,7 +3229,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.js:205 templates/js/order.js:308
+#: templates/js/order.js:267 templates/js/order.js:375
msgid "Items"
msgstr ""
@@ -3279,7 +3253,6 @@ msgid "Purchase Order Attachments"
msgstr ""
#: order/templates/order/po_lineitem_delete.html:5
-#: order/templates/order/so_lineitem_delete.html:5
msgid "Are you sure you wish to delete this line item?"
msgstr ""
@@ -3297,40 +3270,52 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
-#: order/views.py:1410
+#: order/templates/order/purchase_order_detail.html:64
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:56
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:114
+#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/sales_order_detail.html:398
+msgid "Edit Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:110
+#: order/templates/order/sales_order_detail.html:408
+msgid "Delete Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:141
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/purchase_order_detail.html:169
+#: order/templates/order/sales_order_detail.html:233
msgid "Total"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:191
-#: order/templates/order/sales_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:218
+#: order/templates/order/sales_order_detail.html:256 templates/js/part.js:807
+#: templates/js/part.js:996
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:198
-#: order/templates/order/sales_order_detail.html:253
+#: order/templates/order/purchase_order_detail.html:225
+#: order/templates/order/sales_order_detail.html:263
msgid "Total price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:255
-#: order/templates/order/sales_order_detail.html:359
+#: order/templates/order/purchase_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:369
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:256
+#: order/templates/order/purchase_order_detail.html:283
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:261
+#: order/templates/order/purchase_order_detail.html:288
msgid "Receive line item"
msgstr ""
@@ -3345,7 +3330,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
-#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/models.py:326 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:157
#: part/templates/part/category_navbar.html:25
#: part/templates/part/category_navbar.html:32
@@ -3353,7 +3338,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:40
+#: users/models.py:41
msgid "Parts"
msgstr ""
@@ -3395,10 +3380,14 @@ msgstr ""
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100 templates/js/order.js:275
+#: order/templates/order/sales_order_base.html:100 templates/js/order.js:342
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_base.html:177
+msgid "Edit Sales Order"
+msgstr ""
+
#: order/templates/order/sales_order_cancel.html:8
#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
@@ -3414,69 +3403,69 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: order/templates/order/sales_order_detail.html:105 templates/js/bom.js:358
#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: order/templates/order/sales_order_detail.html:112 templates/js/build.js:611
#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: order/templates/order/sales_order_detail.html:113 templates/js/build.js:613
#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:176
+#: order/templates/order/sales_order_detail.html:186
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:216
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: order/templates/order/sales_order_detail.html:284 templates/js/build.js:676
#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:276
+#: order/templates/order/sales_order_detail.html:286
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:313
+#: order/templates/order/sales_order_detail.html:323
msgid "PO"
msgstr ""
-#: order/templates/order/sales_order_detail.html:343
+#: order/templates/order/sales_order_detail.html:353
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
+#: order/templates/order/sales_order_detail.html:356 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:349
+#: order/templates/order/sales_order_detail.html:359
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: order/templates/order/sales_order_detail.html:363 templates/js/build.js:732
#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:356
-#: order/templates/order/sales_order_detail.html:465
+#: order/templates/order/sales_order_detail.html:366
+#: order/templates/order/sales_order_detail.html:485
msgid "Calculate price"
msgstr ""
-#: order/templates/order/sales_order_detail.html:360
+#: order/templates/order/sales_order_detail.html:370
msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:471
+#: order/templates/order/sales_order_detail.html:491
msgid "Update Unit Price"
msgstr ""
@@ -3517,194 +3506,154 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:106
-msgid "Add Purchase Order Attachment"
-msgstr ""
-
-#: order/views.py:156
-msgid "Add Sales Order Attachment"
-msgstr ""
-
-#: order/views.py:348
-msgid "Create Sales Order"
-msgstr ""
-
-#: order/views.py:383
-msgid "Edit Purchase Order"
-msgstr ""
-
-#: order/views.py:403
-msgid "Edit Sales Order"
-msgstr ""
-
-#: order/views.py:419
+#: order/views.py:151
msgid "Cancel Order"
msgstr ""
-#: order/views.py:428 order/views.py:454
+#: order/views.py:160 order/views.py:186
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:431 order/views.py:457
+#: order/views.py:163 order/views.py:189
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:445
+#: order/views.py:177
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:471
+#: order/views.py:203
msgid "Issue Order"
msgstr ""
-#: order/views.py:480
+#: order/views.py:212
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:490
+#: order/views.py:222
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:501
+#: order/views.py:233
msgid "Complete Order"
msgstr ""
-#: order/views.py:517
+#: order/views.py:249
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:528
+#: order/views.py:260
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:538
+#: order/views.py:270
msgid "Ship Order"
msgstr ""
-#: order/views.py:554
+#: order/views.py:286
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:560
+#: order/views.py:292
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:339
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:804
+#: order/views.py:536
msgid "Receive Parts"
msgstr ""
-#: order/views.py:874
+#: order/views.py:606
msgid "Items received"
msgstr ""
-#: order/views.py:888
+#: order/views.py:620
msgid "No destination set"
msgstr ""
-#: order/views.py:933
+#: order/views.py:665
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:939
+#: order/views.py:671
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:945
+#: order/views.py:677
msgid "No lines specified"
msgstr ""
-#: order/views.py:1018
+#: order/views.py:750
msgid "Update prices"
msgstr ""
-#: order/views.py:1276
+#: order/views.py:1008
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1336
-msgid "Supplier part must be specified"
-msgstr ""
-
-#: order/views.py:1342
-msgid "Supplier must match for Part and Order"
-msgstr ""
-
-#: order/views.py:1473 order/views.py:1491
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/views.py:1507 order/views.py:1519
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/views.py:1512 order/views.py:1524
-msgid "Deleted line item"
-msgstr ""
-
-#: order/views.py:1537
+#: order/views.py:1061
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1582
+#: order/views.py:1106
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1598
+#: order/views.py:1122
msgid "Select line item"
msgstr ""
-#: order/views.py:1629
+#: order/views.py:1153
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1639
+#: order/views.py:1163
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1647
+#: order/views.py:1171
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1701
+#: order/views.py:1225
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1775
+#: order/views.py:1299
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1790
+#: order/views.py:1314
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1386
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1868
+#: order/views.py:1392
msgid "Price not found"
msgstr ""
-#: order/views.py:1871
+#: order/views.py:1395
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1876
+#: order/views.py:1400
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:138 part/models.py:72 part/models.py:747
+#: part/bom.py:138 part/models.py:72 part/models.py:756
#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3726,143 +3675,143 @@ msgstr ""
msgid "Error reading BOM file (incorrect row size)"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "File Format"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "Select output file format"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Cascading"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Download cascading / multi-level BOM"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Levels"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Select maximum number of BOM levels to export (0 = all levels)"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include Parameter Data"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include part parameters data in exported BOM"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include Stock Data"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include part stock data in exported BOM"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include Manufacturer Data"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include part manufacturer data in exported BOM"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include Supplier Data"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2191
+#: part/forms.py:106 part/models.py:2224
msgid "Parent Part"
msgstr ""
-#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:107 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr ""
-#: part/forms.py:129
+#: part/forms.py:113
msgid "Clear existing BOM items"
msgstr ""
-#: part/forms.py:135
+#: part/forms.py:119
msgid "Confirm BOM duplication"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "validate"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "BOM file"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "Select BOM file to upload"
msgstr ""
-#: part/forms.py:184
+#: part/forms.py:168
msgid "Related Part"
msgstr ""
-#: part/forms.py:203
+#: part/forms.py:175
msgid "Select part category"
msgstr ""
-#: part/forms.py:220
+#: part/forms.py:192
msgid "Duplicate all BOM data for this part"
msgstr ""
-#: part/forms.py:221
+#: part/forms.py:193
msgid "Copy BOM"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:198
msgid "Duplicate all parameter data for this part"
msgstr ""
-#: part/forms.py:227
+#: part/forms.py:199
msgid "Copy Parameters"
msgstr ""
-#: part/forms.py:232
+#: part/forms.py:204
msgid "Confirm part creation"
msgstr ""
-#: part/forms.py:237
+#: part/forms.py:209
msgid "Include category parameter templates"
msgstr ""
-#: part/forms.py:242
+#: part/forms.py:214
msgid "Include parent categories parameter templates"
msgstr ""
-#: part/forms.py:322
+#: part/forms.py:294
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:298
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2286
+#: part/forms.py:316 part/models.py:2323
msgid "Sub part"
msgstr ""
-#: part/forms.py:373
+#: part/forms.py:345
msgid "Input quantity for price calculation"
msgstr ""
@@ -3878,362 +3827,362 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2237
+#: part/models.py:86 part/models.py:2270
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:32
+#: part/models.py:87 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:39
+#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:448 part/models.py:460
+#: part/models.py:457 part/models.py:469
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:557
+#: part/models.py:566
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:561
+#: part/models.py:570
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:566
+#: part/models.py:575
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:645
+#: part/models.py:654
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:670 part/templates/part/detail.html:22
+#: part/models.py:679 part/templates/part/detail.html:22
msgid "Part name"
msgstr ""
-#: part/models.py:677
+#: part/models.py:686
msgid "Is Template"
msgstr ""
-#: part/models.py:678
+#: part/models.py:687
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:689
+#: part/models.py:698
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:690 part/templates/part/detail.html:60
+#: part/models.py:699 part/templates/part/detail.html:60
msgid "Variant Of"
msgstr ""
-#: part/models.py:696
+#: part/models.py:705
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:82
+#: part/models.py:710 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
-#: part/models.py:702
+#: part/models.py:711
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73
+#: part/models.py:718 part/models.py:2269 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:452
msgid "Category"
msgstr ""
-#: part/models.py:710
+#: part/models.py:719
msgid "Part category"
msgstr ""
-#: part/models.py:715 part/templates/part/detail.html:28
+#: part/models.py:724 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:87 templates/js/part.js:169
#: templates/js/part.js:296
msgid "IPN"
msgstr ""
-#: part/models.py:716
+#: part/models.py:725
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:722
+#: part/models.py:731
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199
+#: part/models.py:732 part/templates/part/detail.html:35 report/models.py:199
#: templates/js/part.js:173
msgid "Revision"
msgstr ""
-#: part/models.py:745
+#: part/models.py:754
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:792 part/templates/part/detail.html:97
+#: part/models.py:801 part/templates/part/detail.html:97
msgid "Default Supplier"
msgstr ""
-#: part/models.py:793
+#: part/models.py:802
msgid "Default supplier part"
msgstr ""
-#: part/models.py:800
+#: part/models.py:809
msgid "Default Expiry"
msgstr ""
-#: part/models.py:801
+#: part/models.py:810
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:806 part/templates/part/detail.html:113
+#: part/models.py:815 part/templates/part/detail.html:113
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:807
+#: part/models.py:816
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:814
+#: part/models.py:823
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:820
+#: part/models.py:829
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:835
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:832
+#: part/models.py:841
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:837
+#: part/models.py:846
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:842
+#: part/models.py:851
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:846 part/templates/part/detail.html:227
+#: part/models.py:855 part/templates/part/detail.html:227
#: templates/js/table_filters.js:21 templates/js/table_filters.js:65
-#: templates/js/table_filters.js:241 templates/js/table_filters.js:310
+#: templates/js/table_filters.js:246 templates/js/table_filters.js:315
msgid "Active"
msgstr ""
-#: part/models.py:847
+#: part/models.py:856
msgid "Is this part active?"
msgstr ""
-#: part/models.py:852
+#: part/models.py:861
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:857
+#: part/models.py:866
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "BOM checksum"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:863
+#: part/models.py:872
msgid "BOM checked by"
msgstr ""
-#: part/models.py:865
+#: part/models.py:874
msgid "BOM checked date"
msgstr ""
-#: part/models.py:869
+#: part/models.py:878
msgid "Creation User"
msgstr ""
-#: part/models.py:1608
+#: part/models.py:1617
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2063
+#: part/models.py:2088
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2080
+#: part/models.py:2105
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117
+#: part/models.py:2125 templates/js/part.js:717 templates/js/stock.js:117
msgid "Test Name"
msgstr ""
-#: part/models.py:2101
+#: part/models.py:2126
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2106
+#: part/models.py:2131
msgid "Test Description"
msgstr ""
-#: part/models.py:2107
+#: part/models.py:2132
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2112 templates/js/part.js:726
-#: templates/js/table_filters.js:227
+#: part/models.py:2137 templates/js/part.js:726
+#: templates/js/table_filters.js:232
msgid "Required"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2138
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2118 templates/js/part.js:734
+#: part/models.py:2143 templates/js/part.js:734
msgid "Requires Value"
msgstr ""
-#: part/models.py:2119
+#: part/models.py:2144
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2124 templates/js/part.js:741
+#: part/models.py:2149 templates/js/part.js:741
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2150
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2187
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2192
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2165
+#: part/models.py:2194
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2193 part/models.py:2242 part/models.py:2243
+#: part/models.py:2226 part/models.py:2275 part/models.py:2276
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Data"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2247 templates/InvenTree/settings/category.html:67
+#: part/models.py:2280 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2281
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2278
+#: part/models.py:2315
msgid "Select parent part"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2324
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2293
+#: part/models.py:2330
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2332 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2295
+#: part/models.py:2332
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2298
+#: part/models.py:2335
msgid "Overage"
msgstr ""
-#: part/models.py:2299
+#: part/models.py:2336
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2302
+#: part/models.py:2339
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2305
+#: part/models.py:2342
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "Checksum"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2348 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2312
+#: part/models.py:2349
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:287
+#: part/models.py:2354 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2318
+#: part/models.py:2355
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1859 part/views.py:1911
-#: stock/models.py:290
+#: part/models.py:2431 part/views.py:1736 part/views.py:1788
+#: stock/models.py:298
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2403 part/models.py:2405
+#: part/models.py:2440 part/models.py:2442
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2445
msgid "BOM Item"
msgstr ""
-#: part/models.py:2527
+#: part/models.py:2564
msgid "Part 1"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Part 2"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2563
+#: part/models.py:2600
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4249,14 +4198,6 @@ msgstr ""
msgid "Part Attachments"
msgstr ""
-#: part/templates/part/bom-delete.html:6
-msgid "Are you sure you want to delete this BOM item?"
-msgstr ""
-
-#: part/templates/part/bom-delete.html:8
-msgid "Deleting this entry will remove the BOM row from the following part"
-msgstr ""
-
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
@@ -4305,7 +4246,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:2154
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr ""
@@ -4321,8 +4262,8 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:590
-#: templates/js/stock.js:1313
+#: part/templates/part/bom.html:160 part/views.py:450
+#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr ""
@@ -4403,7 +4344,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:2564
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr ""
@@ -4463,11 +4404,12 @@ msgid "View grid display"
msgstr ""
#: part/templates/part/category.html:218
-#: stock/templates/stock/location.html:192 templates/js/stock.js:737
+#: stock/templates/stock/location.html:192 templates/js/stock.js:751
msgid "Create new location"
msgstr ""
#: part/templates/part/category.html:223 part/templates/part/category.html:253
+#: part/templates/part/part_base.html:378
msgid "New Category"
msgstr ""
@@ -4479,10 +4421,18 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:260 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1223
msgid "Create new Stock Location"
msgstr ""
+#: part/templates/part/category.html:279
+msgid "Select parent category"
+msgstr ""
+
+#: part/templates/part/category.html:286 part/views.py:2389
+msgid "Edit Part Category"
+msgstr ""
+
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4528,7 +4478,7 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:466
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr ""
@@ -4641,36 +4591,6 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:101
-msgid "Internal Price Information"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:19 part/views.py:2989
-msgid "Add Internal Price Break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:28 templates/403.html:5
-#: templates/403.html:11
-msgid "Permission Denied"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:31 templates/403.html:14
-msgid "You do not have permission to view this page."
-msgstr ""
-
-#: part/templates/part/internal_prices.html:59
-msgid "No internal price break information found"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:110
-msgid "Edit internal price break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:111
-msgid "Delete internal price break"
-msgstr ""
-
#: part/templates/part/manufacturer.html:11
msgid "Part Manufacturers"
msgstr ""
@@ -4680,7 +4600,7 @@ msgid "Delete manufacturer parts"
msgstr ""
#: part/templates/part/manufacturer.html:53
-#: part/templates/part/supplier.html:57
+#: part/templates/part/supplier.html:56
msgid "Create new manufacturer"
msgstr ""
@@ -4704,125 +4624,27 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
-msgid "Order Price Information"
+#: part/templates/part/navbar.html:77
+msgid "Prices"
msgstr ""
-#: part/templates/part/navbar.html:78
-msgid "Order Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
-#: part/templates/part/part_pricing.html:82
-msgid "Internal Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:107
-msgid "Sales Price Information"
-msgstr ""
-
-#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:109 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:112 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
+#: part/templates/part/navbar.html:117 part/templates/part/navbar.html:120
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:130 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:25
-#: part/templates/part/part_base.html:282
-msgid "Calculate"
-msgstr ""
-
-#: part/templates/part/order_prices.html:32
-msgid "Pricing ranges"
-msgstr ""
-
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/part_pricing.html:22
-msgid "Supplier Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:38
-#: part/templates/part/order_prices.html:63
-#: part/templates/part/order_prices.html:95
-#: part/templates/part/order_prices.html:109
-#: part/templates/part/part_pricing.html:26
-#: part/templates/part/part_pricing.html:52
-#: part/templates/part/part_pricing.html:85
-#: part/templates/part/part_pricing.html:100
-msgid "Unit Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:45
-#: part/templates/part/order_prices.html:70
-#: part/templates/part/order_prices.html:100
-#: part/templates/part/order_prices.html:114
-#: part/templates/part/part_pricing.html:32
-#: part/templates/part/part_pricing.html:58
-#: part/templates/part/part_pricing.html:89
-#: part/templates/part/part_pricing.html:104
-msgid "Total Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:53
-#: part/templates/part/part_pricing.html:40
-msgid "No supplier pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:129
-#: part/templates/part/part_pricing.html:48
-msgid "BOM Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:78
-#: part/templates/part/part_pricing.html:66
-msgid "Note: BOM pricing is incomplete for this part"
-msgstr ""
-
-#: part/templates/part/order_prices.html:85
-#: part/templates/part/part_pricing.html:73
-msgid "No BOM pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:123
-#: part/templates/part/part_pricing.html:113
-msgid "No pricing information is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:139
-msgid "Stock Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:147
-msgid "No stock pricing history is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:166
-#, python-format
-msgid "Single Price - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:178
-#, python-format
-msgid "Single Price Difference - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:190
-#, python-format
-msgid "Part Single Price - %(currency)s"
-msgstr ""
-
#: part/templates/part/params.html:17
msgid "Add new parameter"
msgstr ""
@@ -4843,8 +4665,8 @@ msgstr ""
msgid "Part List"
msgstr ""
-#: part/templates/part/part_base.html:26 templates/js/company.js:156
-#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161
+#: part/templates/part/part_base.html:26 templates/js/company.js:280
+#: templates/js/company.js:480 templates/js/part.js:84 templates/js/part.js:161
msgid "Inactive"
msgstr ""
@@ -4907,7 +4729,7 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131
+#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:132
msgid "Required for Build Orders"
msgstr ""
@@ -4928,10 +4750,86 @@ msgstr ""
msgid "Building"
msgstr ""
+#: part/templates/part/part_base.html:285 part/templates/part/prices.html:131
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:379
+msgid "Create New Part Category"
+msgstr ""
+
+#: part/templates/part/part_base.html:387
+msgid "New Parent"
+msgstr ""
+
+#: part/templates/part/part_base.html:435
+msgid "Edit Part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:27
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:31
+#: part/templates/part/prices.html:58 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:107
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:89
+#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:38
+#: part/templates/part/prices.html:65 part/templates/part/prices.html:95
+#: part/templates/part/prices.html:112
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:46
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:55
+#: part/templates/part/prices.html:235
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:73
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:80
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:113
+#: part/templates/part/prices.html:121
+msgid "No pricing information is available for this part."
+msgstr ""
+
#: part/templates/part/part_tests.html:17
msgid "Add Test Template"
msgstr ""
+#: part/templates/part/part_tests.html:61
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:79
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:91
+msgid "Delete Test Result Template"
+msgstr ""
+
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr ""
@@ -4966,12 +4864,98 @@ msgstr ""
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
-#: part/templates/part/related.html:18
-msgid "Add Related"
+#: part/templates/part/prices.html:12
+msgid "General Price Information"
msgstr ""
-#: part/templates/part/sale_prices.html:10
-msgid "Sell Price Information"
+#: part/templates/part/prices.html:22
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:28
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:29
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:56
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:104
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:105
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:127
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:146
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:147 part/templates/part/prices.html:167
+#: part/templates/part/prices.html:193 part/templates/part/prices.html:224
+#: part/templates/part/prices.html:251 part/templates/part/prices.html:279
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:172
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:180
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:192
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:206 part/views.py:2859
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:223
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:250
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:290
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:340
+#, python-format
+msgid "Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:352
+#, python-format
+msgid "Single Price Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:364
+#, python-format
+msgid "Part Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:464
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/related.html:18
+msgid "Add Related"
msgstr ""
#: part/templates/part/sales_orders.html:18
@@ -5045,216 +5029,180 @@ msgstr ""
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:164
-msgid "Add part attachment"
-msgstr ""
-
-#: part/views.py:217 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr ""
-
-#: part/views.py:221
-msgid "Part attachment updated"
-msgstr ""
-
-#: part/views.py:236
-msgid "Delete Part Attachment"
-msgstr ""
-
-#: part/views.py:244
-msgid "Deleted part attachment"
-msgstr ""
-
-#: part/views.py:253
-msgid "Create Test Template"
-msgstr ""
-
-#: part/views.py:280
-msgid "Edit Test Template"
-msgstr ""
-
-#: part/views.py:294
-msgid "Delete Test Template"
-msgstr ""
-
-#: part/views.py:301
+#: part/views.py:161
msgid "Set Part Category"
msgstr ""
-#: part/views.py:351
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:386
+#: part/views.py:246
msgid "Create Variant"
msgstr ""
-#: part/views.py:471
+#: part/views.py:331
msgid "Copied part"
msgstr ""
-#: part/views.py:525 part/views.py:663
+#: part/views.py:385 part/views.py:523
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:595
+#: part/views.py:455
msgid "Created new part"
msgstr ""
-#: part/views.py:763
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1092
+#: part/views.py:925
+msgid "None"
+msgstr ""
+
+#: part/views.py:984
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1194
-msgid "Upload Part Image"
-msgstr ""
-
-#: part/views.py:1200 part/views.py:1235
-msgid "Updated part image"
-msgstr ""
-
-#: part/views.py:1209
+#: part/views.py:1086
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1238
+#: part/views.py:1112
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:1115
msgid "Part image not found"
msgstr ""
-#: part/views.py:1249
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1284
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1314
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1335
+#: part/views.py:1212
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1356
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1367
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1501
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1862
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1887 part/views.py:1890
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr ""
-#: part/views.py:1896
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1934
+#: part/views.py:1811
msgid "Select a part"
msgstr ""
-#: part/views.py:1940
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1944
+#: part/views.py:1821
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2090
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2222
+#: part/views.py:2099
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2363
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2373
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2380
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2388
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2438
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2452
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2512
-msgid "Edit Part Category"
-msgstr ""
-
-#: part/views.py:2550
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2556
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2608
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2709
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2765
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2784
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2854
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2910
-msgid "Confim BOM item deletion"
+#: part/views.py:2792
+msgid "Added new price break"
msgstr ""
-#: part/views.py:2998
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3006
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5360,17 +5308,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1739
+#: stock/models.py:1759
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1745
+#: stock/models.py:1765
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:1012
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr ""
@@ -5382,287 +5330,287 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:212
+#: stock/api.py:211
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:280
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
+#: stock/forms.py:81 stock/forms.py:385 stock/models.py:513
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:419
+#: stock/forms.py:82 stock/forms.py:386
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:118
+#: stock/forms.py:85
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:169
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:173 stock/forms.py:349
+#: stock/forms.py:140 stock/forms.py:316
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:203 stock/forms.py:259
+#: stock/forms.py:170 stock/forms.py:226
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:75
+#: stock/forms.py:234 templates/js/table_filters.js:75
#: templates/js/table_filters.js:138
msgid "Include sublocations"
msgstr ""
-#: stock/forms.py:267
+#: stock/forms.py:234
msgid "Include stock items in sub locations"
msgstr ""
-#: stock/forms.py:302
+#: stock/forms.py:269
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:309
+#: stock/forms.py:276
msgid "Stock quantity to assign"
msgstr ""
-#: stock/forms.py:337
+#: stock/forms.py:304
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:347
+#: stock/forms.py:314
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/forms.py:375
+#: stock/forms.py:342
msgid "Destination stock location"
msgstr ""
-#: stock/forms.py:377
+#: stock/forms.py:344
msgid "Add note (required)"
msgstr ""
-#: stock/forms.py:381 stock/views.py:852 stock/views.py:1051
+#: stock/forms.py:348 stock/views.py:705 stock/views.py:904
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/forms.py:381
+#: stock/forms.py:348
msgid "Confirm movement of stock items"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set Default Location"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:52 stock/models.py:542
+#: stock/models.py:56 stock/models.py:550
msgid "Owner"
msgstr ""
-#: stock/models.py:53 stock/models.py:543
+#: stock/models.py:57 stock/models.py:551
msgid "Select Owner"
msgstr ""
-#: stock/models.py:271
+#: stock/models.py:279
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:307
+#: stock/models.py:315
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:317 stock/models.py:326
+#: stock/models.py:325 stock/models.py:334
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:318
+#: stock/models.py:326
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:340
+#: stock/models.py:348
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:346
+#: stock/models.py:354
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:361
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:395
+#: stock/models.py:403
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:412
msgid "Base part"
msgstr ""
-#: stock/models.py:413
+#: stock/models.py:421
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:426 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:421
+#: stock/models.py:429
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:428
+#: stock/models.py:436
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:433 stock/templates/stock/item_base.html:270
+#: stock/models.py:441 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:436
+#: stock/models.py:444
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:452
+#: stock/models.py:460
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:472
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:476
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:477
+#: stock/models.py:485
msgid "Source Build"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:487
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:490
+#: stock/models.py:498
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:493
+#: stock/models.py:501
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:499
+#: stock/models.py:507
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:514
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:529 stock/templates/stock/item_notes.html:13
+#: stock/models.py:537 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:538
+#: stock/models.py:546
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1006
+#: stock/models.py:1014
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1012
+#: stock/models.py:1020
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1018
+#: stock/models.py:1026
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1021
+#: stock/models.py:1029
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1024
+#: stock/models.py:1032
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1031
+#: stock/models.py:1039
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1197
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1679
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1716
+#: stock/models.py:1736
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1722
+#: stock/models.py:1742
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1740
+#: stock/models.py:1760
msgid "Test name"
msgstr ""
-#: stock/models.py:1746 templates/js/table_filters.js:217
+#: stock/models.py:1766 templates/js/table_filters.js:222
msgid "Test result"
msgstr ""
-#: stock/models.py:1752
+#: stock/models.py:1772
msgid "Test output value"
msgstr ""
-#: stock/models.py:1759
+#: stock/models.py:1779
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1785
msgid "Test notes"
msgstr ""
@@ -5852,6 +5800,10 @@ msgstr ""
msgid "No stocktake performed"
msgstr ""
+#: stock/templates/stock/item_base.html:499
+msgid "Edit Stock Status"
+msgstr ""
+
#: stock/templates/stock/item_childs.html:12
msgid "Child Stock Items"
msgstr ""
@@ -5911,6 +5863,19 @@ msgstr ""
msgid "Add Test Data"
msgstr ""
+#: stock/templates/stock/item_tests.html:86
+#: stock/templates/stock/item_tests.html:111
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:131
+msgid "Edit Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:145
+msgid "Delete Test Result"
+msgstr ""
+
#: stock/templates/stock/location.html:20
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
@@ -5959,7 +5924,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:97 users/models.py:41
+#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -5999,7 +5964,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1196
msgid "Convert Stock Item"
msgstr ""
@@ -6032,8 +5997,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
-#: stock/views.py:1830
+#: stock/views.py:230 stock/views.py:1175 stock/views.py:1297
+#: stock/views.py:1662
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -6041,208 +6006,188 @@ msgstr ""
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:265
-msgid "Add Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:311
-msgid "Edit Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:327
-msgid "Delete Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:343
+#: stock/views.py:264
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:273
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:297
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:385
+#: stock/views.py:306
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:396
+#: stock/views.py:317
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:407
+#: stock/views.py:328
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:345
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:444
-msgid "Add Test Result"
-msgstr ""
-
-#: stock/views.py:484
-msgid "Edit Test Result"
-msgstr ""
-
-#: stock/views.py:501
-msgid "Delete Test Result"
-msgstr ""
-
-#: stock/views.py:509
+#: stock/views.py:362
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:630
+#: stock/views.py:483
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:656
+#: stock/views.py:509
msgid "Install Stock Item"
msgstr ""
-#: stock/views.py:755
+#: stock/views.py:608
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:863
+#: stock/views.py:716
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:888
+#: stock/views.py:741
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Take"
msgstr ""
-#: stock/views.py:1001
+#: stock/views.py:854
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:187
+#: stock/views.py:854 users/models.py:188
msgid "Add"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:855
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:1031
+#: stock/views.py:884
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:1036
+#: stock/views.py:889
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:1043
+#: stock/views.py:896
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:1107
+#: stock/views.py:960
msgid "No action performed"
msgstr ""
-#: stock/views.py:1122
+#: stock/views.py:975
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:1137
+#: stock/views.py:990
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:1150
+#: stock/views.py:1003
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:1190
+#: stock/views.py:1043
msgid "No items were moved"
msgstr ""
-#: stock/views.py:1193
+#: stock/views.py:1046
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:1212
+#: stock/views.py:1065
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1222
-msgid "Edit Stock Item Status"
-msgstr ""
-
-#: stock/views.py:1245
+#: stock/views.py:1077
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1482
+#: stock/views.py:1314
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:327
+#: stock/views.py:1407 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1717
+#: stock/views.py:1549
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1799
+#: stock/views.py:1631
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1899
+#: stock/views.py:1731
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1912
+#: stock/views.py:1744
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1923
+#: stock/views.py:1755
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1930
+#: stock/views.py:1762
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1939
+#: stock/views.py:1771
msgid "Add Stock Tracking Entry"
msgstr ""
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
msgstr ""
@@ -6271,35 +6216,39 @@ msgstr ""
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:145
-msgid "Expired Stock"
+#: templates/InvenTree/index.html:131
+msgid "Depleted Stock"
msgstr ""
#: templates/InvenTree/index.html:146
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:147
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:192
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:185
+#: templates/InvenTree/index.html:193
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:214
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:207
+#: templates/InvenTree/index.html:215
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:237
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:230
+#: templates/InvenTree/index.html:238
msgid "Overdue Sales Orders"
msgstr ""
@@ -6585,24 +6534,12 @@ msgstr ""
msgid "copy version information"
msgstr ""
-#: templates/about.html:100 templates/js/modals.js:568
-#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54
-#: templates/modals.html:97
+#: templates/about.html:100 templates/js/modals.js:34
+#: templates/js/modals.js:677 templates/js/modals.js:970
+#: templates/modals.html:29 templates/modals.html:54 templates/modals.html:97
msgid "Close"
msgstr ""
-#: templates/attachment_table.html:6
-msgid "Add Attachment"
-msgstr ""
-
-#: templates/attachment_table.html:17
-msgid "Uploaded"
-msgstr ""
-
-#: templates/attachment_table.html:35
-msgid "Delete attachment"
-msgstr ""
-
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6619,6 +6556,22 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
+#: templates/js/attachment.js:16
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/attachment.js:56
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/attachment.js:69
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/attachment.js:76
+msgid "Delete attachment"
+msgstr ""
+
#: templates/js/barcode.js:8
msgid "Scan barcode data here using wedge scanner"
msgstr ""
@@ -6647,7 +6600,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:921
+#: templates/js/barcode.js:119 templates/js/modals.js:1030
msgid "Invalid server response"
msgstr ""
@@ -6747,7 +6700,7 @@ msgstr ""
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:372
+#: templates/js/bom.js:372 templates/js/bom.js:519
msgid "Delete BOM Item"
msgstr ""
@@ -6775,7 +6728,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/build.js:222 templates/js/order.js:382
+#: templates/js/build.js:222 templates/js/order.js:449
msgid "Location not specified"
msgstr ""
@@ -6801,7 +6754,7 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
-#: templates/js/stock.js:514 templates/js/stock.js:966
+#: templates/js/stock.js:514 templates/js/stock.js:980
msgid "Select"
msgstr ""
@@ -6813,45 +6766,69 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/company.js:74
+#: templates/js/company.js:45
+msgid "Edit Company"
+msgstr ""
+
+#: templates/js/company.js:66
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/company.js:143
msgid "Parts Supplied"
msgstr ""
-#: templates/js/company.js:83
+#: templates/js/company.js:152
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/company.js:96
+#: templates/js/company.js:165
msgid "No company information found"
msgstr ""
-#: templates/js/company.js:129
+#: templates/js/company.js:183
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/company.js:200
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/company.js:253
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/company.js:148 templates/js/company.js:347
+#: templates/js/company.js:272 templates/js/company.js:472
#: templates/js/part.js:68 templates/js/part.js:153
msgid "Template part"
msgstr ""
-#: templates/js/company.js:152 templates/js/company.js:351
+#: templates/js/company.js:276 templates/js/company.js:476
#: templates/js/part.js:72 templates/js/part.js:157
msgid "Assembled part"
msgstr ""
-#: templates/js/company.js:226
+#: templates/js/company.js:350
msgid "No parameters found"
msgstr ""
-#: templates/js/company.js:262
+#: templates/js/company.js:386
msgid "Edit parameter"
msgstr ""
-#: templates/js/company.js:263
+#: templates/js/company.js:387
msgid "Delete parameter"
msgstr ""
-#: templates/js/company.js:328
+#: templates/js/company.js:406
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/company.js:417
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/company.js:453
msgid "No supplier parts found"
msgstr ""
@@ -6879,6 +6856,83 @@ msgstr ""
msgid "Create filter"
msgstr ""
+#: templates/js/forms.js:278 templates/js/forms.js:291
+#: templates/js/forms.js:303 templates/js/forms.js:315
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/forms.js:279
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:292
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:304
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:316
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:583 templates/js/modals.js:1040
+msgid "No Response"
+msgstr ""
+
+#: templates/js/forms.js:584 templates/js/modals.js:1041
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/forms.js:590 templates/js/modals.js:1050
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/forms.js:591 templates/js/modals.js:1051
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/forms.js:597 templates/js/modals.js:1055
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/forms.js:598 templates/js/modals.js:1056
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/forms.js:604 templates/js/modals.js:1060
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/forms.js:605 templates/js/modals.js:1061
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/forms.js:611 templates/js/modals.js:1065
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/forms.js:612 templates/js/modals.js:1066
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/forms.js:618 templates/js/modals.js:1069
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/forms.js:788 templates/modals.html:21 templates/modals.html:47
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/forms.js:1161
+msgid "Searching"
+msgstr ""
+
+#: templates/js/forms.js:1301
+msgid "Clear input"
+msgstr ""
+
#: templates/js/label.js:10 templates/js/report.js:98
msgid "Select Stock Items"
msgstr ""
@@ -6919,112 +6973,102 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:265
-msgid "Waiting for server..."
-msgstr ""
-
-#: templates/js/modals.js:424
-msgid "Show Error Information"
-msgstr ""
-
-#: templates/js/modals.js:491 templates/modals.html:76
-msgid "Accept"
-msgstr ""
-
-#: templates/js/modals.js:492 templates/modals.html:75
+#: templates/js/modals.js:59 templates/js/modals.js:105
+#: templates/js/modals.js:601 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:556
-msgid "Loading Data"
-msgstr ""
-
-#: templates/js/modals.js:567 templates/js/modals.js:860
+#: templates/js/modals.js:60 templates/js/modals.js:104
+#: templates/js/modals.js:676 templates/js/modals.js:969
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:103
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/modals.js:374
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/modals.js:533
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/modals.js:600 templates/modals.html:76
+msgid "Accept"
+msgstr ""
+
+#: templates/js/modals.js:665
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/modals.js:920
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:920
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:824
+#: templates/js/modals.js:933
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:921
+#: templates/js/modals.js:1030
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:931
-msgid "No Response"
-msgstr ""
-
-#: templates/js/modals.js:932
-msgid "No response from the InvenTree server"
-msgstr ""
-
-#: templates/js/modals.js:936
+#: templates/js/modals.js:1045
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:937
+#: templates/js/modals.js:1046
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:941
-msgid "Error 401: Not Authenticated"
+#: templates/js/model_renderers.js:21
+msgid "Company ID"
msgstr ""
-#: templates/js/modals.js:942
-msgid "Authentication credentials not supplied"
+#: templates/js/model_renderers.js:63
+msgid "Location ID"
msgstr ""
-#: templates/js/modals.js:946
-msgid "Error 403: Permission Denied"
+#: templates/js/model_renderers.js:90
+msgid "Part ID"
msgstr ""
-#: templates/js/modals.js:947
-msgid "You do not have the required permissions to access this function"
+#: templates/js/model_renderers.js:126
+msgid "Category ID"
msgstr ""
-#: templates/js/modals.js:951
-msgid "Error 404: Resource Not Found"
+#: templates/js/model_renderers.js:150
+msgid "Supplier Part ID"
msgstr ""
-#: templates/js/modals.js:952
-msgid "The requested resource could not be located on the server"
+#: templates/js/order.js:31
+msgid "Create Sales Order"
msgstr ""
-#: templates/js/modals.js:956
-msgid "Error 408: Timeout"
-msgstr ""
-
-#: templates/js/modals.js:957
-msgid "Connection timeout while requesting data from server"
-msgstr ""
-
-#: templates/js/modals.js:960
-msgid "Error requesting form data"
-msgstr ""
-
-#: templates/js/order.js:138
+#: templates/js/order.js:200
msgid "No purchase orders found"
msgstr ""
-#: templates/js/order.js:162 templates/js/order.js:257
+#: templates/js/order.js:224 templates/js/order.js:319
msgid "Order is overdue"
msgstr ""
-#: templates/js/order.js:234
+#: templates/js/order.js:296
msgid "No sales orders found"
msgstr ""
-#: templates/js/order.js:343
+#: templates/js/order.js:333
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/order.js:410
msgid "No sales order allocations found"
msgstr ""
@@ -7064,11 +7108,11 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:476 templates/js/table_filters.js:323
+#: templates/js/part.js:476 templates/js/table_filters.js:328
msgid "Low stock"
msgstr ""
-#: templates/js/part.js:660 templates/js/stock.js:990
+#: templates/js/part.js:660 templates/js/stock.js:1004
msgid "Path"
msgstr ""
@@ -7088,7 +7132,22 @@ msgstr ""
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/part.js:806
+#: templates/js/part.js:786
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/part.js:839
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:840
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:959
msgid "Single Price Difference"
msgstr ""
@@ -7266,75 +7325,75 @@ msgstr ""
msgid "Stocktake"
msgstr ""
-#: templates/js/stock.js:853
+#: templates/js/stock.js:867
msgid "Stock Status"
msgstr ""
-#: templates/js/stock.js:868
+#: templates/js/stock.js:882
msgid "Set Stock Status"
msgstr ""
-#: templates/js/stock.js:882
+#: templates/js/stock.js:896
msgid "Select Status Code"
msgstr ""
-#: templates/js/stock.js:883
+#: templates/js/stock.js:897
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1022
+#: templates/js/stock.js:1036
msgid "Invalid date"
msgstr ""
-#: templates/js/stock.js:1069
+#: templates/js/stock.js:1083
msgid "Location no longer exists"
msgstr ""
-#: templates/js/stock.js:1088
+#: templates/js/stock.js:1102
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/stock.js:1107
+#: templates/js/stock.js:1121
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/stock.js:1125
+#: templates/js/stock.js:1139
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/stock.js:1148
+#: templates/js/stock.js:1162
msgid "Added"
msgstr ""
-#: templates/js/stock.js:1156
+#: templates/js/stock.js:1170
msgid "Removed"
msgstr ""
-#: templates/js/stock.js:1188
+#: templates/js/stock.js:1202
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1200
+#: templates/js/stock.js:1214
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1201
+#: templates/js/stock.js:1215
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1325
+#: templates/js/stock.js:1339
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1366
+#: templates/js/stock.js:1380
msgid "No installed items"
msgstr ""
-#: templates/js/stock.js:1389
+#: templates/js/stock.js:1403
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1417
+#: templates/js/stock.js:1431
msgid "Uninstall Stock Item"
msgstr ""
@@ -7355,7 +7414,7 @@ msgid "Include locations"
msgstr ""
#: templates/js/table_filters.js:86 templates/js/table_filters.js:87
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:305
msgid "Include subcategories"
msgstr ""
@@ -7388,7 +7447,7 @@ msgstr ""
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:290
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:295
msgid "Active parts"
msgstr ""
@@ -7460,43 +7519,51 @@ msgstr ""
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:236
+#: templates/js/table_filters.js:211
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/table_filters.js:212
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/table_filters.js:241
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
+#: templates/js/table_filters.js:265 templates/js/table_filters.js:282
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:306
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:305
+#: templates/js/table_filters.js:310
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:311
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:311
+#: templates/js/table_filters.js:316
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:319
+#: templates/js/table_filters.js:324
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:335
+#: templates/js/table_filters.js:340
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:347
+#: templates/js/table_filters.js:352
msgid "Purchasable"
msgstr ""
@@ -7553,10 +7620,6 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:47
-msgid "Form errors exist"
-msgstr ""
-
#: templates/navbar.html:13
msgid "Toggle navigation"
msgstr ""
@@ -7573,7 +7636,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:38
+#: templates/navbar.html:77 users/models.py:39
msgid "Admin"
msgstr ""
@@ -7793,34 +7856,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:174
+#: users/models.py:175
msgid "Permission set"
msgstr ""
-#: users/models.py:182
+#: users/models.py:183
msgid "Group"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "View"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "Permission to view items"
msgstr ""
-#: users/models.py:187
+#: users/models.py:188
msgid "Permission to add items"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Change"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:191
+#: users/models.py:192
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 7c9ad06f92..9968d727ff 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-01 22:35+0000\n"
-"PO-Revision-Date: 2021-07-01 22:38\n"
+"POT-Creation-Date: 2021-07-03 12:15+0000\n"
+"PO-Revision-Date: 2021-07-03 12:44\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -29,14 +29,14 @@ msgstr "No se especificó ninguna acción"
msgid "No matching action found"
msgstr "No se encontró ninguna acción coincidente"
-#: InvenTree/fields.py:84
+#: InvenTree/fields.py:99
msgid "Enter date"
msgstr "Ingrese la fecha"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
-#: order/forms.py:75 part/forms.py:134
+#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
+#: order/forms.py:74 part/forms.py:118 templates/js/forms.js:486
msgid "Confirm"
msgstr "Confirmar"
@@ -77,8 +77,8 @@ msgstr "Seleccionar Categoría"
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
-#: stock/views.py:1795
+#: InvenTree/helpers.py:403 order/models.py:311 order/models.py:421
+#: stock/views.py:1627
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
@@ -106,49 +106,53 @@ msgstr "Numeros de serie no encontrados"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1758
+#: InvenTree/models.py:61 stock/models.py:1778
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:60
+#: InvenTree/models.py:62
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:62 templates/attachment_table.html:16
+#: InvenTree/models.py:64 templates/js/attachment.js:52
msgid "Comment"
msgstr "Comentario"
-#: InvenTree/models.py:62
+#: InvenTree/models.py:64
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2043
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1179
+#: templates/js/stock.js:1193
msgid "User"
msgstr "Usuario"
-#: InvenTree/models.py:72
+#: InvenTree/models.py:74
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396
-#: label/models.py:102 part/models.py:671 part/models.py:2163
+#: InvenTree/models.py:102
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:414
+#: label/models.py:103 part/models.py:680 part/models.py:2192
#: part/templates/part/params.html:27 report/models.py:180
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/company.js:235 templates/js/part.js:118
-#: templates/js/part.js:642 templates/js/stock.js:972
+#: templates/js/company.js:359 templates/js/part.js:118
+#: templates/js/part.js:642 templates/js/stock.js:986
msgid "Name"
msgstr "Nombre"
-#: InvenTree/models.py:114 build/models.py:135
-#: build/templates/build/detail.html:21 company/models.py:339
-#: company/models.py:532 company/templates/company/detail.html:27
+#: InvenTree/models.py:125 build/models.py:139
+#: build/templates/build/detail.html:21 company/models.py:353
+#: company/models.py:554 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
-#: part/models.py:695 part/templates/part/detail.html:54
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:110
+#: order/models.py:154 order/templates/order/purchase_order_detail.html:174
+#: part/models.py:704 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
#: report/templates/report/inventree_build_order_base.html:118
@@ -156,39 +160,43 @@ msgstr "Nombre"
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
#: templates/js/build.js:834 templates/js/build.js:1102
-#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
+#: templates/js/company.js:125 templates/js/order.js:245
+#: templates/js/order.js:347 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
-#: templates/js/stock.js:557 templates/js/stock.js:984
-#: templates/js/stock.js:1029
+#: templates/js/stock.js:557 templates/js/stock.js:998
+#: templates/js/stock.js:1043
msgid "Description"
msgstr "Descripción"
-#: InvenTree/models.py:115
+#: InvenTree/models.py:126
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:123
+#: InvenTree/models.py:134
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:504
+#: InvenTree/serializers.py:52
+msgid "Must be a valid number"
+msgstr ""
+
+#: InvenTree/settings.py:505
msgid "English"
msgstr "Inglés"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "French"
msgstr "Francés"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "German"
msgstr "Alemán"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Polish"
msgstr "Polaco"
-#: InvenTree/settings.py:508
+#: InvenTree/settings.py:509
msgid "Turkish"
msgstr "Turco"
@@ -446,50 +454,48 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
+#: build/templates/build/detail.html:121
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:881 templates/js/order.js:200
-#: templates/js/order.js:298
+#: templates/js/build.js:881 templates/js/order.js:262
+#: templates/js/order.js:365
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:225
+#: build/forms.py:43 build/models.py:229
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1354
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:31 common/models.py:741
-#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
-#: order/forms.py:289 order/models.py:613 order/models.py:835
-#: order/templates/order/order_wizard/match_parts.html:30
+#: company/forms.py:124 company/templates/company/supplier_part_pricing.html:79
+#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:702
+#: order/models.py:941 order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/purchase_order_detail.html:179
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:162
-#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
-#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
-#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:203
-#: part/templates/part/part_pricing.html:16
-#: part/templates/part/sale_prices.html:85
+#: order/templates/order/purchase_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:80
+#: order/templates/order/sales_order_detail.html:87
+#: order/templates/order/sales_order_detail.html:172
+#: order/templates/order/sales_order_detail.html:244 part/forms.py:314
+#: part/forms.py:344 part/forms.py:360 part/forms.py:376 part/models.py:2330
+#: part/templates/part/part_pricing.html:16 part/templates/part/prices.html:377
+#: part/templates/part/prices.html:474
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308
+#: stock/forms.py:142 stock/forms.py:275
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
-#: templates/js/build.js:1112 templates/js/order.js:393
-#: templates/js/part.js:796 templates/js/stock.js:1164
-#: templates/js/stock.js:1383
+#: templates/js/build.js:1112 templates/js/model_renderers.js:43
+#: templates/js/order.js:460 templates/js/part.js:827 templates/js/part.js:949
+#: templates/js/part.js:1005 templates/js/stock.js:1178
+#: templates/js/stock.js:1397
msgid "Quantity"
msgstr "Cantidad"
@@ -501,7 +507,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:114 stock/forms.py:85
msgid "Serial Numbers"
msgstr "Números de serie"
@@ -530,12 +536,12 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: stock/forms.py:347 stock/templates/stock/item_base.html:285
+#: stock/forms.py:314 stock/templates/stock/item_base.html:285
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:586 templates/js/order.js:378
-#: templates/js/stock.js:643 templates/js/stock.js:1056
+#: templates/js/build.js:586 templates/js/order.js:445
+#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr "Unicación"
@@ -544,13 +550,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:465
+#: build/templates/build/detail.html:59 order/models.py:545
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:868
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:630 templates/js/stock.js:1133
-#: templates/js/stock.js:1399
+#: templates/js/order.js:249 templates/js/order.js:352
+#: templates/js/stock.js:630 templates/js/stock.js:1147
+#: templates/js/stock.js:1413
msgid "Status"
msgstr "Estado"
@@ -582,60 +588,60 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:66 build/templates/build/build_base.html:9
+#: build/models.py:70 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:195
msgid "Build Order"
msgstr ""
-#: build/models.py:67 build/templates/build/index.html:8
+#: build/models.py:71 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
-#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:191
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
+#: templates/InvenTree/settings/tabs.html:34 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:127
+#: build/models.py:131
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:98 order/models.py:615
-#: order/templates/order/purchase_order_detail.html:174
-#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
+#: build/models.py:132 order/models.py:242 order/models.py:529
+#: order/models.py:709 order/templates/order/purchase_order_detail.html:201
+#: order/templates/order/sales_order_detail.html:239 part/models.py:2339
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr "Referencia"
-#: build/models.py:138
+#: build/models.py:142
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:147 build/templates/build/build_base.html:163
+#: build/models.py:151 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr ""
-#: build/models.py:148
+#: build/models.py:152
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:153 build/templates/build/auto_allocate.html:16
+#: build/models.py:157 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:657 order/models.py:712
+#: build/templates/build/detail.html:26 company/models.py:689
+#: order/models.py:755 order/models.py:814
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:132
+#: order/templates/order/purchase_order_detail.html:159
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:214 part/models.py:321
-#: part/models.py:1975 part/models.py:1987 part/models.py:2002
-#: part/models.py:2020 part/models.py:2095 part/models.py:2191
-#: part/models.py:2277 part/templates/part/part_app_base.html:8
+#: order/templates/order/sales_order_detail.html:224 part/models.py:325
+#: part/models.py:1988 part/models.py:2004 part/models.py:2023
+#: part/models.py:2041 part/models.py:2120 part/models.py:2224
+#: part/models.py:2314 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
@@ -644,222 +650,222 @@ msgstr ""
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
#: templates/js/build.js:552 templates/js/build.js:839
-#: templates/js/build.js:1079 templates/js/company.js:140
-#: templates/js/company.js:339 templates/js/part.js:241
+#: templates/js/build.js:1079 templates/js/company.js:264
+#: templates/js/company.js:464 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
-#: templates/js/stock.js:1371
+#: templates/js/stock.js:1385
msgid "Part"
msgstr "Parte"
-#: build/models.py:161
+#: build/models.py:165
msgid "Select part to build"
msgstr ""
-#: build/models.py:166
+#: build/models.py:170
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:170
+#: build/models.py:174
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:175
+#: build/models.py:179
msgid "Source Location"
msgstr ""
-#: build/models.py:179
+#: build/models.py:183
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:184
+#: build/models.py:188
msgid "Destination Location"
msgstr ""
-#: build/models.py:188
+#: build/models.py:192
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:192
+#: build/models.py:196
msgid "Build Quantity"
msgstr ""
-#: build/models.py:195
+#: build/models.py:199
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:199
+#: build/models.py:203
msgid "Completed items"
msgstr "Elementos completados"
-#: build/models.py:201
+#: build/models.py:205
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:205 part/templates/part/part_base.html:167
+#: build/models.py:209 part/templates/part/part_base.html:167
msgid "Build Status"
msgstr ""
-#: build/models.py:209
+#: build/models.py:213
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:462
+#: build/models.py:217 stock/models.py:470
msgid "Batch Code"
msgstr ""
-#: build/models.py:217
+#: build/models.py:221
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:104 part/models.py:867
-#: part/templates/part/detail.html:126 templates/js/order.js:293
+#: build/models.py:224 order/models.py:158 part/models.py:876
+#: part/templates/part/detail.html:126 templates/js/order.js:360
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:471
+#: build/models.py:228 order/models.py:551
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:217 templates/js/build.js:886
+#: build/models.py:232 order/models.py:284 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
-#: build/models.py:234
+#: build/models.py:238
msgid "completed by"
msgstr ""
-#: build/models.py:242
+#: build/models.py:246
msgid "Issued by"
msgstr ""
-#: build/models.py:243
+#: build/models.py:247
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:118
+#: build/models.py:255 build/templates/build/build_base.html:184
+#: build/templates/build/detail.html:105 order/models.py:172
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:871
+#: order/templates/order/sales_order_base.html:140 part/models.py:880
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:252
+#: build/models.py:256
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:257 build/templates/build/detail.html:91
+#: build/models.py:261 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
#: company/templates/company/manufacturer_part_detail.html:28
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:456 stock/templates/stock/item_base.html:345
+#: stock/models.py:464 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:458
+#: build/models.py:262 part/models.py:738 stock/models.py:466
msgid "Link to external URL"
msgstr ""
-#: build/models.py:262 build/templates/build/navbar.html:53
-#: company/models.py:132 company/models.py:539
+#: build/models.py:266 build/templates/build/navbar.html:53
+#: company/models.py:141 company/models.py:561
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:122
-#: order/models.py:617 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:176
+#: order/models.py:711 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/purchase_order_detail.html:243
-#: order/templates/order/sales_order_detail.html:309
+#: order/templates/order/purchase_order_detail.html:270
+#: order/templates/order/sales_order_detail.html:319
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:145
+#: order/templates/order/so_navbar.html:36 part/models.py:865
+#: part/templates/part/navbar.html:133
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
+#: stock/forms.py:140 stock/forms.py:284 stock/forms.py:316 stock/forms.py:344
+#: stock/models.py:536 stock/models.py:1678 stock/models.py:1784
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:713
msgid "Notes"
msgstr "Notas"
-#: build/models.py:263
+#: build/models.py:267
msgid "Extra build notes"
msgstr ""
-#: build/models.py:740
+#: build/models.py:744
msgid "No build output specified"
msgstr ""
-#: build/models.py:743
+#: build/models.py:747
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:746
+#: build/models.py:750
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1152
+#: build/models.py:1160
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1177
+#: build/models.py:1185
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1181
+#: build/models.py:1189
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:809
+#: build/models.py:1196 order/models.py:915
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:812
+#: build/models.py:1200 order/models.py:918
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1204
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1264
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1316 stock/templates/stock/item_base.html:317
+#: build/models.py:1324 stock/templates/stock/item_base.html:317
#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1317
+#: build/models.py:1325
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1333 stock/templates/stock/item_base.html:8
+#: build/models.py:1341 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
#: templates/js/build.js:211 templates/js/build.js:929
-#: templates/js/order.js:366 templates/js/order.js:371
-#: templates/js/stock.js:1115
+#: templates/js/order.js:433 templates/js/order.js:438
+#: templates/js/stock.js:1129
msgid "Stock Item"
msgstr ""
-#: build/models.py:1334
+#: build/models.py:1342
msgid "Source stock item"
msgstr ""
-#: build/models.py:1347
+#: build/models.py:1355
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1355
+#: build/models.py:1363
msgid "Install into"
msgstr ""
-#: build/models.py:1356
+#: build/models.py:1364
msgid "Destination stock item"
msgstr ""
@@ -893,7 +899,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:724
#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -912,23 +918,52 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:160
+#: order/templates/order/sales_order_detail.html:85
+#: order/templates/order/sales_order_detail.html:170
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:450 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:570
+#: stock/models.py:458 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570 templates/js/model_renderers.js:41
msgid "Serial Number"
msgstr "Número de serie"
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
-#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:124
+#: part/templates/part/navbar.html:127 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
+#: build/templates/build/attachments.html:51
+#: order/templates/order/so_attachments.html:79
+#: part/templates/part/attachments.html:81
+#: stock/templates/stock/item_attachments.html:81
+#: templates/attachment_table.html:6
+msgid "Add Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:69
+#: order/templates/order/so_attachments.html:52
+#: part/templates/part/attachments.html:35
+#: stock/templates/stock/item_attachments.html:49
+msgid "Edit Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:76
+#: order/templates/order/so_attachments.html:58
+#: part/templates/part/attachments.html:44
+#: stock/templates/stock/item_attachments.html:58
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/attachments.html:77
+#: order/templates/order/so_attachments.html:59
+#: part/templates/part/attachments.html:45
+#: stock/templates/stock/item_attachments.html:59
+msgid "Delete Attachment"
+msgstr ""
+
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
msgstr ""
@@ -989,8 +1024,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
#: order/templates/order/sales_order_base.html:88
-#: templates/js/table_filters.js:245 templates/js/table_filters.js:264
-#: templates/js/table_filters.js:281
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:269
+#: templates/js/table_filters.js:286
msgid "Overdue"
msgstr ""
@@ -1036,13 +1071,13 @@ msgid "Progress"
msgstr "Progreso"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:710
+#: build/templates/build/detail.html:84 order/models.py:812
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:279 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:279 templates/js/order.js:307
msgid "Sales Order"
msgstr ""
@@ -1183,10 +1218,10 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
-#: order/templates/order/purchase_order_detail.html:239
-#: order/templates/order/receive_parts.html:25 stock/forms.py:169
-#: stock/forms.py:375
+#: build/templates/build/detail.html:46 order/forms.py:88 order/models.py:771
+#: order/templates/order/purchase_order_detail.html:266
+#: order/templates/order/receive_parts.html:25 stock/forms.py:136
+#: stock/forms.py:342
msgid "Destination"
msgstr "Destinación"
@@ -1196,7 +1231,7 @@ msgstr ""
#: build/templates/build/detail.html:70
#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638
-#: templates/js/stock.js:1406 templates/js/table_filters.js:112
+#: templates/js/stock.js:1420 templates/js/table_filters.js:112
#: templates/js/table_filters.js:206
msgid "Batch"
msgstr "Lote"
@@ -1251,7 +1286,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
-#: templates/js/stock.js:1044
+#: templates/js/stock.js:1058
msgid "Details"
msgstr "Detalles"
@@ -1287,7 +1322,6 @@ msgstr ""
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487
-#: stock/templates/stock/item_base.html:497
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr "Guardar"
@@ -1316,7 +1350,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/views.py:1821
+#: build/views.py:184 stock/views.py:1653
msgid "Serial numbers already exist"
msgstr ""
@@ -1332,7 +1366,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:281 build/views.py:371 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:346
msgid "Check the confirmation box"
msgstr ""
@@ -1429,31 +1463,6 @@ msgstr ""
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1070
-msgid "Add Build Order Attachment"
-msgstr ""
-
-#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
-#: stock/views.py:277
-msgid "Added attachment"
-msgstr ""
-
-#: build/views.py:1119 order/views.py:196 order/views.py:217
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/views.py:1129 order/views.py:200 order/views.py:221
-msgid "Attachment updated"
-msgstr ""
-
-#: build/views.py:1139 order/views.py:236 order/views.py:250
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
-msgid "Deleted attachment"
-msgstr ""
-
#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1470,7 +1479,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/attachment_table.html:15
+#: common/forms.py:34 templates/js/attachment.js:42
msgid "File"
msgstr ""
@@ -1503,7 +1512,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:72 company/models.py:94 company/models.py:95
+#: common/models.py:72 company/models.py:99 company/models.py:100
msgid "Company name"
msgstr ""
@@ -1607,9 +1616,9 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
-#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
-#: templates/js/table_filters.js:315
+#: common/models.py:160 part/models.py:2226 part/templates/part/detail.html:160
+#: report/models.py:186 stock/forms.py:226 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:320
msgid "Template"
msgstr ""
@@ -1617,8 +1626,8 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
+#: common/models.py:167 part/models.py:828 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:128 templates/js/table_filters.js:332
msgid "Assembly"
msgstr ""
@@ -1626,8 +1635,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:331
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:336
msgid "Component"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:845 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
@@ -1643,8 +1652,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:339
+#: common/models.py:188 part/models.py:850 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:344
msgid "Salable"
msgstr ""
@@ -1652,8 +1661,8 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
+#: common/models.py:195 part/models.py:840 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:348
msgid "Trackable"
msgstr ""
@@ -1661,7 +1670,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:860 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -1858,13 +1867,12 @@ msgstr ""
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:742 company/forms.py:190
+#: common/models.py:742 company/forms.py:125
msgid "Price break quantity"
msgstr ""
-#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
-#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
+#: templates/js/part.js:832
msgid "Price"
msgstr ""
@@ -1894,16 +1902,16 @@ msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:605
+#: order/templates/order/po_navbar.html:22 order/views.py:337
#: part/templates/part/bom_upload/upload_file.html:27
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:621
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:338 part/templates/part/bom_upload/select_fields.html:58
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr ""
@@ -1928,269 +1936,277 @@ msgstr ""
msgid "Previous Step"
msgstr ""
-#: company/forms.py:37 company/models.py:142
-#: company/templates/company/detail.html:42
-msgid "Currency"
-msgstr ""
-
-#: company/forms.py:38 company/models.py:144
-msgid "Default currency used for this company"
-msgstr ""
-
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:26 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:27 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:132 templates/js/part.js:787
+#: company/forms.py:67 templates/js/part.js:940
msgid "Single Price"
msgstr ""
-#: company/forms.py:133
+#: company/forms.py:68
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:141 company/models.py:321
+#: company/forms.py:76 company/models.py:335
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:147 company/models.py:328
+#: company/forms.py:82 company/models.py:342
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:149 company/models.py:327
+#: company/forms.py:84 company/models.py:341
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:162 part/bom.py:171
-#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408
+#: order/templates/order/purchase_order_detail.html:189 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:305 templates/js/company.js:533
msgid "MPN"
msgstr ""
-#: company/models.py:99
+#: company/models.py:104
msgid "Company description"
msgstr ""
-#: company/models.py:100
+#: company/models.py:105
msgid "Description of the company"
msgstr ""
-#: company/models.py:104 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:33 templates/js/company.js:60
+#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:129
msgid "Website"
msgstr "Página web"
-#: company/models.py:104
+#: company/models.py:112
msgid "Company website URL"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:77
+#: company/models.py:116 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:108
+#: company/models.py:117
msgid "Company address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:120
msgid "Phone number"
msgstr "Teléfono"
-#: company/models.py:112
+#: company/models.py:121
msgid "Contact phone number"
msgstr "Teléfono de contacto"
-#: company/models.py:115 company/templates/company/company_base.html:91
+#: company/models.py:124 company/templates/company/company_base.html:91
msgid "Email"
msgstr "Email"
-#: company/models.py:115
+#: company/models.py:124
msgid "Contact email address"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:98
+#: company/models.py:127 company/templates/company/company_base.html:98
msgid "Contact"
msgstr "Contacto"
-#: company/models.py:119
+#: company/models.py:128
msgid "Point of contact"
msgstr ""
-#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:102 part/models.py:728
+#: company/models.py:130 company/models.py:347 company/models.py:548
+#: order/models.py:156 part/models.py:737
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/company.js:188 templates/js/company.js:419
+#: templates/js/company.js:312 templates/js/company.js:544
#: templates/js/part.js:498
msgid "Link"
msgstr ""
-#: company/models.py:121
+#: company/models.py:130
msgid "Link to external company information"
msgstr ""
-#: company/models.py:129 part/models.py:738
+#: company/models.py:138 part/models.py:747
msgid "Image"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "is customer"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "is supplier"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "is manufacturer"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:403
+#: company/models.py:151 company/serializers.py:259
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:154
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:319 company/models.py:519 stock/models.py:411
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1603
+#: company/models.py:323 company/models.py:523 order/views.py:1127
msgid "Select part"
msgstr ""
-#: company/models.py:320 company/templates/company/detail.html:57
+#: company/models.py:334 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
#: part/bom.py:241 stock/templates/stock/item_base.html:352
-#: templates/js/company.js:44 templates/js/company.js:165
-#: templates/js/company.js:390
+#: templates/js/company.js:113 templates/js/company.js:289
+#: templates/js/company.js:515
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/models.py:334
+#: company/models.py:348
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:340
+#: company/models.py:354
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:390 company/models.py:520
+#: company/models.py:408 company/models.py:542
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:362
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:397
+#: company/models.py:415
msgid "Parameter name"
msgstr ""
-#: company/models.py:403 part/templates/part/params.html:28
+#: company/models.py:421 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
-#: templates/js/company.js:241 templates/js/stock.js:137
+#: stock/models.py:1771 templates/InvenTree/settings/header.html:8
+#: templates/js/company.js:365 templates/js/stock.js:137
msgid "Value"
msgstr ""
-#: company/models.py:404
+#: company/models.py:422
msgid "Parameter value"
msgstr ""
-#: company/models.py:410 part/models.py:813 part/models.py:2165
+#: company/models.py:428 part/models.py:822 part/models.py:2194
#: part/templates/part/detail.html:106 part/templates/part/params.html:29
-#: templates/js/company.js:247
+#: templates/js/company.js:371
msgid "Units"
msgstr ""
-#: company/models.py:411
+#: company/models.py:429
msgid "Parameter units"
msgstr ""
-#: company/models.py:507 company/templates/company/detail.html:62
+#: company/models.py:529 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:256
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
-#: templates/js/company.js:48 templates/js/company.js:364
-#: templates/js/order.js:170
+#: templates/js/company.js:117 templates/js/company.js:489
+#: templates/js/order.js:232
msgid "Supplier"
msgstr "Proveedor"
-#: company/models.py:508
+#: company/models.py:530
msgid "Select supplier"
msgstr ""
-#: company/models.py:513 company/templates/company/supplier_part_base.html:88
+#: company/models.py:535 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:153 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:180 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:514
+#: company/models.py:536
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:521
+#: company/models.py:543
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:527
+#: company/models.py:549
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:533
+#: company/models.py:555
msgid "Supplier part description"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part_base.html:116
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305
+#: company/models.py:560 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2342
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Nota"
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "base cost"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:427 stock/templates/stock/item_base.html:310
-#: templates/js/stock.js:695
+#: company/models.py:566 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:435 stock/templates/stock/item_base.html:310
+#: templates/js/stock.js:709
msgid "Packaging"
msgstr ""
-#: company/models.py:544
+#: company/models.py:566
msgid "Part packaging"
msgstr ""
-#: company/models.py:546 part/models.py:1608
+#: company/models.py:568 part/models.py:1617
msgid "multiple"
msgstr ""
-#: company/models.py:546
+#: company/models.py:568
msgid "Order multiple"
msgstr ""
+#: company/serializers.py:68
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:69
+msgid "Currency Code"
+msgstr ""
+
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
#: company/templates/company/navbar.html:65 templates/js/build.js:563
@@ -2199,7 +2215,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:102
msgid "Company"
msgstr ""
@@ -2213,7 +2229,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:313
+#: company/templates/company/company_base.html:46 templates/js/order.js:61
msgid "Create Purchase Order"
msgstr ""
@@ -2221,7 +2237,8 @@ msgstr ""
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56 company/views.py:326
+#: company/templates/company/company_base.html:56
+#: company/templates/company/company_base.html:126
msgid "Delete Company"
msgstr ""
@@ -2235,15 +2252,9 @@ msgstr ""
msgid "Phone"
msgstr "Teléfono"
-#: company/templates/company/delete.html:7
-#, python-format
-msgid "Are you sure you want to delete company '%(name)s'?"
-msgstr ""
-
-#: company/templates/company/delete.html:12
-#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be deleted."
+#: company/templates/company/company_base.html:166
+#: part/templates/part/part_base.html:307
+msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:21
@@ -2258,11 +2269,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:460
-#: order/templates/order/sales_order_base.html:94 stock/models.py:445
-#: stock/models.py:446 stock/templates/stock/item_base.html:262
-#: templates/js/company.js:40 templates/js/order.js:267
-#: templates/js/stock.js:1097
+#: company/templates/company/detail.html:67 order/models.py:540
+#: order/templates/order/sales_order_base.html:94 stock/models.py:453
+#: stock/models.py:454 stock/templates/stock/item_base.html:262
+#: templates/js/company.js:109 templates/js/order.js:329
+#: templates/js/stock.js:1111
msgid "Customer"
msgstr "Cliente"
@@ -2283,6 +2294,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
+#: company/templates/company/manufacturer_part_suppliers.html:46
#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
@@ -2305,26 +2317,25 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:68
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:127
-#: templates/js/stock.js:1312
+#: templates/js/stock.js:1326
msgid "New Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:69
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:72
-#: company/views.py:71 part/templates/part/manufacturer.html:52
-#: part/templates/part/supplier.html:56
+#: company/templates/company/detail_manufacturer_part.html:74
+#: company/views.py:66 part/templates/part/manufacturer.html:52
+#: part/templates/part/supplier.html:55
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:73
-#: company/views.py:284
+#: company/templates/company/detail_manufacturer_part.html:75
msgid "Create new Manufacturer"
msgstr ""
@@ -2335,7 +2346,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:123 part/templates/part/category.html:137
-#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
+#: part/templates/part/stock.html:55 stock/templates/stock/location.html:163
msgid "Export"
msgstr "Exportar"
@@ -2347,26 +2358,24 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:44
-#: order/templates/order/purchase_order_detail.html:50
+#: part/templates/part/part_base.html:429
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1318
+#: part/templates/part/part_base.html:428 part/templates/part/supplier.html:17
+#: templates/js/stock.js:1332
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
-#: company/templates/company/manufacturer_part_suppliers.html:82
-#: company/views.py:64 order/templates/order/purchase_orders.html:185
-#: part/templates/part/supplier.html:50
+#: company/templates/company/manufacturer_part_suppliers.html:96
+#: company/views.py:60 part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
-#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:186
+#: company/templates/company/detail_supplier_part.html:73
msgid "Create new Supplier"
msgstr ""
@@ -2401,20 +2410,19 @@ msgstr ""
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:6
-msgid "Are you sure you want to delete the following Manufacturer Parts?"
+#: company/templates/company/manufacturer_part_base.html:125
+msgid "Edit Manufacturer Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:36
-#, python-format
-msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
+#: company/templates/company/manufacturer_part_base.html:134
+msgid "Delete Manufacturer Part"
msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:87
-#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
-#: templates/navbar.html:35
+#: company/views.py:59 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 part/templates/part/prices.html:153
+#: templates/InvenTree/search.html:316 templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2425,7 +2433,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:39 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:53
#: 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:128 templates/InvenTree/search.html:196
@@ -2451,9 +2459,11 @@ msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: company/templates/company/manufacturer_part_suppliers.html:142
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:191
+#: stock/views.py:855 templates/js/company.js:203 users/models.py:192
msgid "Delete"
msgstr "Eliminar"
@@ -2471,11 +2481,27 @@ msgstr ""
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part_suppliers.html:83
+#: company/templates/company/manufacturer_part_suppliers.html:48
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:80
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:97
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
msgstr ""
+#: company/templates/company/manufacturer_part_suppliers.html:127
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:139
+msgid "Delete Parameters"
+msgstr ""
+
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
msgid "Manufactured Parts"
@@ -2492,8 +2518,8 @@ msgstr ""
#: stock/templates/stock/location.html:136
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
-#: templates/InvenTree/search.html:198 templates/js/stock.js:996
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2503,11 +2529,11 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: part/templates/part/navbar.html:101 part/templates/part/navbar.html:104
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:236
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
-#: users/models.py:45
+#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2516,10 +2542,10 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:213
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
-#: users/models.py:44
+#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2548,8 +2574,9 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
-#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:420
+#: stock/templates/stock/item_base.html:374 templates/js/company.js:505
+#: templates/js/stock.js:690
msgid "Supplier Part"
msgstr ""
@@ -2594,459 +2621,401 @@ msgid "Order Part"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:11
+#: part/templates/part/navbar.html:74
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2918
+#: company/templates/company/supplier_part_pricing.html:19
+#: company/templates/company/supplier_part_pricing.html:118
+#: part/templates/part/prices.html:264 part/views.py:2788
msgid "Add Price Break"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:38
-#: part/templates/part/sale_prices.html:46
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:89
-#: part/templates/part/sale_prices.html:97
+#: company/templates/company/supplier_part_pricing.html:52 part/views.py:2850
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:66 part/views.py:2836
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:91
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:90
-#: part/templates/part/sale_prices.html:98
+#: company/templates/company/supplier_part_pricing.html:92
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:81
-#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
-#: templates/navbar.html:36
+#: company/views.py:65 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 part/templates/part/prices.html:157
+#: templates/InvenTree/search.html:306 templates/navbar.html:36
msgid "Manufacturers"
msgstr "Fabricantes"
-#: company/views.py:77 templates/InvenTree/search.html:336
+#: company/views.py:71 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:187
+#: company/views.py:72
msgid "New Customer"
msgstr ""
-#: company/views.py:86
+#: company/views.py:79
msgid "Companies"
msgstr ""
-#: company/views.py:87
+#: company/views.py:80
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:1115
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:1147
+#: company/views.py:190 part/views.py:1039
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:1154
+#: company/views.py:197 part/views.py:1046
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:1163
+#: company/views.py:206 part/views.py:1055
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: company/views.py:243
-msgid "Update Company Image"
-msgstr ""
-
-#: company/views.py:249
-msgid "Updated company image"
-msgstr ""
-
-#: company/views.py:259
-msgid "Edit Company"
-msgstr ""
-
-#: company/views.py:264
-msgid "Edited company information"
-msgstr ""
-
-#: company/views.py:287 order/templates/order/sales_orders.html:188
-msgid "Create new Customer"
-msgstr ""
-
-#: company/views.py:289
-msgid "Create new Company"
-msgstr ""
-
-#: company/views.py:316
-msgid "Created new company"
-msgstr ""
-
-#: company/views.py:332
-msgid "Company was deleted"
-msgstr ""
-
-#: company/views.py:357
-msgid "Edit Manufacturer Part"
-msgstr ""
-
-#: company/views.py:366
+#: company/views.py:251
msgid "Create New Manufacturer Part"
msgstr ""
-#: company/views.py:440
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: company/views.py:514
-msgid "Add Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:548
-msgid "Edit Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:588
+#: company/views.py:334
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:639 templates/js/stock.js:1319
+#: company/views.py:385 templates/js/stock.js:1333
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:783
+#: company/views.py:529
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2922
-msgid "Added new price break"
-msgstr ""
-
-#: company/views.py:916 part/views.py:2966
-msgid "Edit Price Break"
-msgstr ""
-
-#: company/views.py:931 part/views.py:2980
-msgid "Delete Price Break"
-msgstr ""
-
#: label/api.py:56 report/api.py:201
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:103
+#: label/models.py:104
msgid "Label name"
msgstr ""
-#: label/models.py:110
+#: label/models.py:111
msgid "Label description"
msgstr ""
-#: label/models.py:117 stock/forms.py:202
+#: label/models.py:118 stock/forms.py:169
msgid "Label"
msgstr ""
-#: label/models.py:118
+#: label/models.py:119
msgid "Label template file"
msgstr ""
-#: label/models.py:124 report/models.py:297
+#: label/models.py:125 report/models.py:297
msgid "Enabled"
msgstr ""
-#: label/models.py:125
+#: label/models.py:126
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Width [mm]"
msgstr ""
-#: label/models.py:131
+#: label/models.py:132
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Height [mm]"
msgstr ""
-#: label/models.py:138
+#: label/models.py:139
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:144 report/models.py:290
+#: label/models.py:145 report/models.py:290
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:145
+#: label/models.py:146
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:244 label/models.py:297
+#: label/models.py:249 label/models.py:306
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:245 label/models.py:298 report/models.py:317
+#: label/models.py:250 label/models.py:307 report/models.py:317
#: report/models.py:440 report/models.py:474
msgid "Filters"
msgstr ""
-#: order/forms.py:31 order/templates/order/order_base.html:47
+#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:42 order/templates/order/order_base.html:54
+#: order/forms.py:41 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
+#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:75 order/templates/order/sales_order_base.html:58
+#: order/forms.py:74 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:90
+#: order/forms.py:89
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:112
-msgid "Purchase Order reference"
-msgstr ""
-
-#: order/forms.py:119
-msgid "Target date for order delivery. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:147
-msgid "Enter sales order number"
-msgstr ""
-
-#: order/forms.py:154 order/models.py:472
-msgid "Target date for order completion. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:246
+#: order/forms.py:116
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:252
+#: order/forms.py:122
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:98
-msgid "Order reference"
-msgstr ""
-
-#: order/models.py:100
+#: order/models.py:154
msgid "Order description"
msgstr ""
-#: order/models.py:102
+#: order/models.py:156
msgid "Link to external page"
msgstr ""
-#: order/models.py:110 part/templates/part/detail.html:132
+#: order/models.py:164 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:117
+#: order/models.py:171
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:176
msgid "Order notes"
msgstr ""
-#: order/models.py:181 order/models.py:465
+#: order/models.py:243 order/models.py:530
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:248 order/models.py:545
msgid "Purchase order status"
msgstr ""
-#: order/models.py:190
+#: order/models.py:257
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:193 order/templates/order/order_base.html:98
-#: templates/js/order.js:179
+#: order/models.py:260 order/templates/order/order_base.html:98
+#: templates/js/order.js:241
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:193
+#: order/models.py:260
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:200
+#: order/models.py:267
msgid "received by"
msgstr ""
-#: order/models.py:205
+#: order/models.py:272
msgid "Issue Date"
msgstr ""
-#: order/models.py:206
+#: order/models.py:273
msgid "Date order was issued"
msgstr ""
-#: order/models.py:211
+#: order/models.py:278
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:212
+#: order/models.py:279
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:218
+#: order/models.py:285
msgid "Date order was completed"
msgstr ""
-#: order/models.py:242 part/views.py:1853 stock/models.py:300
-#: stock/models.py:1015
+#: order/models.py:309 part/views.py:1730 stock/models.py:308
+#: stock/models.py:1023
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:247
+#: order/models.py:314
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:345
+#: order/models.py:412
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:349
+#: order/models.py:416
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:351
+#: order/models.py:418
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:461
+#: order/models.py:541
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer Reference "
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:475 templates/js/order.js:303
+#: order/models.py:552
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:555 templates/js/order.js:370
msgid "Shipment Date"
msgstr ""
-#: order/models.py:482
+#: order/models.py:562
msgid "shipped by"
msgstr ""
-#: order/models.py:526
+#: order/models.py:606
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:613
+#: order/models.py:703
msgid "Item quantity"
msgstr ""
-#: order/models.py:615
+#: order/models.py:709
msgid "Line item reference"
msgstr ""
-#: order/models.py:617
+#: order/models.py:711
msgid "Line item notes"
msgstr ""
-#: order/models.py:643 order/models.py:710 templates/js/order.js:353
+#: order/models.py:741 order/models.py:812 templates/js/order.js:420
msgid "Order"
msgstr ""
-#: order/models.py:644 order/templates/order/order_base.html:9
+#: order/models.py:742 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
-#: templates/js/stock.js:669 templates/js/stock.js:1078
+#: stock/templates/stock/item_base.html:324 templates/js/order.js:210
+#: templates/js/stock.js:669 templates/js/stock.js:1092
msgid "Purchase Order"
msgstr ""
-#: order/models.py:658
+#: order/models.py:756
msgid "Supplier part"
msgstr ""
-#: order/models.py:661 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:219
+#: order/models.py:759 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:246
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:661
+#: order/models.py:759
msgid "Number of items received"
msgstr ""
-#: order/models.py:667 stock/models.py:537
-#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
+#: order/models.py:765 part/templates/part/prices.html:166 stock/models.py:545
+#: stock/templates/stock/item_base.html:331 templates/js/stock.js:704
msgid "Purchase Price"
msgstr ""
-#: order/models.py:668
+#: order/models.py:766
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:676
+#: order/models.py:774
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:718 part/templates/part/navbar.html:110
-#: part/templates/part/order_prices.html:108
-#: part/templates/part/part_pricing.html:97
+#: order/models.py:820 part/templates/part/part_pricing.html:97
+#: part/templates/part/prices.html:103 part/templates/part/prices.html:278
msgid "Sale Price"
msgstr ""
-#: order/models.py:719
+#: order/models.py:821
msgid "Unit sale price"
msgstr ""
-#: order/models.py:794 order/models.py:796
+#: order/models.py:900 order/models.py:902
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:800
+#: order/models.py:906
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:802
+#: order/models.py:908
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:805
+#: order/models.py:911
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:815
+#: order/models.py:921
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:820
+#: order/models.py:926
msgid "Line"
msgstr ""
-#: order/models.py:831
+#: order/models.py:937
msgid "Item"
msgstr ""
-#: order/models.py:832
+#: order/models.py:938
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:835
+#: order/models.py:941
msgid "Enter stock allocation quantity"
msgstr ""
+#: order/serializers.py:139
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Sale price currency"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
#: templates/attachment_delete.html:5
@@ -3091,16 +3060,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:180
-#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/order_base.html:188
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:199
+#: order/templates/order/purchase_order_detail.html:127
#: part/templates/part/category.html:217 part/templates/part/category.html:259
-#: stock/templates/stock/location.html:191 templates/js/stock.js:736
-#: templates/js/stock.js:1324
+#: part/templates/part/part_base.html:415
+#: stock/templates/stock/location.html:191 templates/js/stock.js:750
+#: templates/js/stock.js:1338
msgid "New Location"
msgstr ""
-#: order/templates/order/order_base.html:181
-#: order/templates/order/purchase_order_detail.html:101
+#: order/templates/order/order_base.html:200
+#: order/templates/order/purchase_order_detail.html:128
+#: part/templates/part/part_base.html:416
#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3253,7 +3228,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.js:205 templates/js/order.js:308
+#: templates/js/order.js:267 templates/js/order.js:375
msgid "Items"
msgstr ""
@@ -3277,7 +3252,6 @@ msgid "Purchase Order Attachments"
msgstr ""
#: order/templates/order/po_lineitem_delete.html:5
-#: order/templates/order/so_lineitem_delete.html:5
msgid "Are you sure you wish to delete this line item?"
msgstr ""
@@ -3295,40 +3269,52 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
-#: order/views.py:1410
+#: order/templates/order/purchase_order_detail.html:64
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:56
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:114
+#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/sales_order_detail.html:398
+msgid "Edit Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:110
+#: order/templates/order/sales_order_detail.html:408
+msgid "Delete Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:141
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/purchase_order_detail.html:169
+#: order/templates/order/sales_order_detail.html:233
msgid "Total"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:191
-#: order/templates/order/sales_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:218
+#: order/templates/order/sales_order_detail.html:256 templates/js/part.js:807
+#: templates/js/part.js:996
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:198
-#: order/templates/order/sales_order_detail.html:253
+#: order/templates/order/purchase_order_detail.html:225
+#: order/templates/order/sales_order_detail.html:263
msgid "Total price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:255
-#: order/templates/order/sales_order_detail.html:359
+#: order/templates/order/purchase_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:369
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:256
+#: order/templates/order/purchase_order_detail.html:283
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:261
+#: order/templates/order/purchase_order_detail.html:288
msgid "Receive line item"
msgstr ""
@@ -3343,7 +3329,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
-#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/models.py:326 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:157
#: part/templates/part/category_navbar.html:25
#: part/templates/part/category_navbar.html:32
@@ -3351,7 +3337,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:40
+#: users/models.py:41
msgid "Parts"
msgstr ""
@@ -3393,10 +3379,14 @@ msgstr ""
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100 templates/js/order.js:275
+#: order/templates/order/sales_order_base.html:100 templates/js/order.js:342
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_base.html:177
+msgid "Edit Sales Order"
+msgstr ""
+
#: order/templates/order/sales_order_cancel.html:8
#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
@@ -3412,69 +3402,69 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: order/templates/order/sales_order_detail.html:105 templates/js/bom.js:358
#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: order/templates/order/sales_order_detail.html:112 templates/js/build.js:611
#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: order/templates/order/sales_order_detail.html:113 templates/js/build.js:613
#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:176
+#: order/templates/order/sales_order_detail.html:186
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:216
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: order/templates/order/sales_order_detail.html:284 templates/js/build.js:676
#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:276
+#: order/templates/order/sales_order_detail.html:286
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:313
+#: order/templates/order/sales_order_detail.html:323
msgid "PO"
msgstr ""
-#: order/templates/order/sales_order_detail.html:343
+#: order/templates/order/sales_order_detail.html:353
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
+#: order/templates/order/sales_order_detail.html:356 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:349
+#: order/templates/order/sales_order_detail.html:359
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: order/templates/order/sales_order_detail.html:363 templates/js/build.js:732
#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:356
-#: order/templates/order/sales_order_detail.html:465
+#: order/templates/order/sales_order_detail.html:366
+#: order/templates/order/sales_order_detail.html:485
msgid "Calculate price"
msgstr ""
-#: order/templates/order/sales_order_detail.html:360
+#: order/templates/order/sales_order_detail.html:370
msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:471
+#: order/templates/order/sales_order_detail.html:491
msgid "Update Unit Price"
msgstr ""
@@ -3515,194 +3505,154 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:106
-msgid "Add Purchase Order Attachment"
-msgstr ""
-
-#: order/views.py:156
-msgid "Add Sales Order Attachment"
-msgstr ""
-
-#: order/views.py:348
-msgid "Create Sales Order"
-msgstr ""
-
-#: order/views.py:383
-msgid "Edit Purchase Order"
-msgstr ""
-
-#: order/views.py:403
-msgid "Edit Sales Order"
-msgstr ""
-
-#: order/views.py:419
+#: order/views.py:151
msgid "Cancel Order"
msgstr ""
-#: order/views.py:428 order/views.py:454
+#: order/views.py:160 order/views.py:186
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:431 order/views.py:457
+#: order/views.py:163 order/views.py:189
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:445
+#: order/views.py:177
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:471
+#: order/views.py:203
msgid "Issue Order"
msgstr ""
-#: order/views.py:480
+#: order/views.py:212
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:490
+#: order/views.py:222
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:501
+#: order/views.py:233
msgid "Complete Order"
msgstr ""
-#: order/views.py:517
+#: order/views.py:249
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:528
+#: order/views.py:260
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:538
+#: order/views.py:270
msgid "Ship Order"
msgstr ""
-#: order/views.py:554
+#: order/views.py:286
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:560
+#: order/views.py:292
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:339
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:804
+#: order/views.py:536
msgid "Receive Parts"
msgstr ""
-#: order/views.py:874
+#: order/views.py:606
msgid "Items received"
msgstr ""
-#: order/views.py:888
+#: order/views.py:620
msgid "No destination set"
msgstr ""
-#: order/views.py:933
+#: order/views.py:665
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:939
+#: order/views.py:671
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:945
+#: order/views.py:677
msgid "No lines specified"
msgstr ""
-#: order/views.py:1018
+#: order/views.py:750
msgid "Update prices"
msgstr ""
-#: order/views.py:1276
+#: order/views.py:1008
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1336
-msgid "Supplier part must be specified"
-msgstr ""
-
-#: order/views.py:1342
-msgid "Supplier must match for Part and Order"
-msgstr ""
-
-#: order/views.py:1473 order/views.py:1491
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/views.py:1507 order/views.py:1519
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/views.py:1512 order/views.py:1524
-msgid "Deleted line item"
-msgstr ""
-
-#: order/views.py:1537
+#: order/views.py:1061
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1582
+#: order/views.py:1106
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1598
+#: order/views.py:1122
msgid "Select line item"
msgstr ""
-#: order/views.py:1629
+#: order/views.py:1153
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1639
+#: order/views.py:1163
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1647
+#: order/views.py:1171
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1701
+#: order/views.py:1225
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1775
+#: order/views.py:1299
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1790
+#: order/views.py:1314
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1386
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1868
+#: order/views.py:1392
msgid "Price not found"
msgstr ""
-#: order/views.py:1871
+#: order/views.py:1395
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1876
+#: order/views.py:1400
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:138 part/models.py:72 part/models.py:747
+#: part/bom.py:138 part/models.py:72 part/models.py:756
#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3724,143 +3674,143 @@ msgstr ""
msgid "Error reading BOM file (incorrect row size)"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "File Format"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "Select output file format"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Cascading"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Download cascading / multi-level BOM"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Levels"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Select maximum number of BOM levels to export (0 = all levels)"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include Parameter Data"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include part parameters data in exported BOM"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include Stock Data"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include part stock data in exported BOM"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include Manufacturer Data"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include part manufacturer data in exported BOM"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include Supplier Data"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2191
+#: part/forms.py:106 part/models.py:2224
msgid "Parent Part"
msgstr ""
-#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:107 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr ""
-#: part/forms.py:129
+#: part/forms.py:113
msgid "Clear existing BOM items"
msgstr ""
-#: part/forms.py:135
+#: part/forms.py:119
msgid "Confirm BOM duplication"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "validate"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "BOM file"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "Select BOM file to upload"
msgstr ""
-#: part/forms.py:184
+#: part/forms.py:168
msgid "Related Part"
msgstr ""
-#: part/forms.py:203
+#: part/forms.py:175
msgid "Select part category"
msgstr ""
-#: part/forms.py:220
+#: part/forms.py:192
msgid "Duplicate all BOM data for this part"
msgstr ""
-#: part/forms.py:221
+#: part/forms.py:193
msgid "Copy BOM"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:198
msgid "Duplicate all parameter data for this part"
msgstr ""
-#: part/forms.py:227
+#: part/forms.py:199
msgid "Copy Parameters"
msgstr ""
-#: part/forms.py:232
+#: part/forms.py:204
msgid "Confirm part creation"
msgstr ""
-#: part/forms.py:237
+#: part/forms.py:209
msgid "Include category parameter templates"
msgstr ""
-#: part/forms.py:242
+#: part/forms.py:214
msgid "Include parent categories parameter templates"
msgstr ""
-#: part/forms.py:322
+#: part/forms.py:294
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:298
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2286
+#: part/forms.py:316 part/models.py:2323
msgid "Sub part"
msgstr ""
-#: part/forms.py:373
+#: part/forms.py:345
msgid "Input quantity for price calculation"
msgstr ""
@@ -3876,362 +3826,362 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2237
+#: part/models.py:86 part/models.py:2270
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:32
+#: part/models.py:87 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:39
+#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:448 part/models.py:460
+#: part/models.py:457 part/models.py:469
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:557
+#: part/models.py:566
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:561
+#: part/models.py:570
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:566
+#: part/models.py:575
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:645
+#: part/models.py:654
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:670 part/templates/part/detail.html:22
+#: part/models.py:679 part/templates/part/detail.html:22
msgid "Part name"
msgstr ""
-#: part/models.py:677
+#: part/models.py:686
msgid "Is Template"
msgstr ""
-#: part/models.py:678
+#: part/models.py:687
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:689
+#: part/models.py:698
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:690 part/templates/part/detail.html:60
+#: part/models.py:699 part/templates/part/detail.html:60
msgid "Variant Of"
msgstr ""
-#: part/models.py:696
+#: part/models.py:705
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:82
+#: part/models.py:710 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
-#: part/models.py:702
+#: part/models.py:711
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73
+#: part/models.py:718 part/models.py:2269 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:452
msgid "Category"
msgstr ""
-#: part/models.py:710
+#: part/models.py:719
msgid "Part category"
msgstr ""
-#: part/models.py:715 part/templates/part/detail.html:28
+#: part/models.py:724 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:87 templates/js/part.js:169
#: templates/js/part.js:296
msgid "IPN"
msgstr ""
-#: part/models.py:716
+#: part/models.py:725
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:722
+#: part/models.py:731
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199
+#: part/models.py:732 part/templates/part/detail.html:35 report/models.py:199
#: templates/js/part.js:173
msgid "Revision"
msgstr ""
-#: part/models.py:745
+#: part/models.py:754
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:792 part/templates/part/detail.html:97
+#: part/models.py:801 part/templates/part/detail.html:97
msgid "Default Supplier"
msgstr ""
-#: part/models.py:793
+#: part/models.py:802
msgid "Default supplier part"
msgstr ""
-#: part/models.py:800
+#: part/models.py:809
msgid "Default Expiry"
msgstr ""
-#: part/models.py:801
+#: part/models.py:810
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:806 part/templates/part/detail.html:113
+#: part/models.py:815 part/templates/part/detail.html:113
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:807
+#: part/models.py:816
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:814
+#: part/models.py:823
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:820
+#: part/models.py:829
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:835
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:832
+#: part/models.py:841
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:837
+#: part/models.py:846
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:842
+#: part/models.py:851
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:846 part/templates/part/detail.html:227
+#: part/models.py:855 part/templates/part/detail.html:227
#: templates/js/table_filters.js:21 templates/js/table_filters.js:65
-#: templates/js/table_filters.js:241 templates/js/table_filters.js:310
+#: templates/js/table_filters.js:246 templates/js/table_filters.js:315
msgid "Active"
msgstr ""
-#: part/models.py:847
+#: part/models.py:856
msgid "Is this part active?"
msgstr ""
-#: part/models.py:852
+#: part/models.py:861
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:857
+#: part/models.py:866
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "BOM checksum"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:863
+#: part/models.py:872
msgid "BOM checked by"
msgstr ""
-#: part/models.py:865
+#: part/models.py:874
msgid "BOM checked date"
msgstr ""
-#: part/models.py:869
+#: part/models.py:878
msgid "Creation User"
msgstr ""
-#: part/models.py:1608
+#: part/models.py:1617
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2063
+#: part/models.py:2088
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2080
+#: part/models.py:2105
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117
+#: part/models.py:2125 templates/js/part.js:717 templates/js/stock.js:117
msgid "Test Name"
msgstr ""
-#: part/models.py:2101
+#: part/models.py:2126
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2106
+#: part/models.py:2131
msgid "Test Description"
msgstr ""
-#: part/models.py:2107
+#: part/models.py:2132
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2112 templates/js/part.js:726
-#: templates/js/table_filters.js:227
+#: part/models.py:2137 templates/js/part.js:726
+#: templates/js/table_filters.js:232
msgid "Required"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2138
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2118 templates/js/part.js:734
+#: part/models.py:2143 templates/js/part.js:734
msgid "Requires Value"
msgstr ""
-#: part/models.py:2119
+#: part/models.py:2144
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2124 templates/js/part.js:741
+#: part/models.py:2149 templates/js/part.js:741
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2150
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2187
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2192
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2165
+#: part/models.py:2194
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2193 part/models.py:2242 part/models.py:2243
+#: part/models.py:2226 part/models.py:2275 part/models.py:2276
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Data"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2247 templates/InvenTree/settings/category.html:67
+#: part/models.py:2280 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2281
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2278
+#: part/models.py:2315
msgid "Select parent part"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2324
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2293
+#: part/models.py:2330
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2332 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2295
+#: part/models.py:2332
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2298
+#: part/models.py:2335
msgid "Overage"
msgstr ""
-#: part/models.py:2299
+#: part/models.py:2336
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2302
+#: part/models.py:2339
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2305
+#: part/models.py:2342
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "Checksum"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2348 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2312
+#: part/models.py:2349
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:287
+#: part/models.py:2354 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2318
+#: part/models.py:2355
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1859 part/views.py:1911
-#: stock/models.py:290
+#: part/models.py:2431 part/views.py:1736 part/views.py:1788
+#: stock/models.py:298
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2403 part/models.py:2405
+#: part/models.py:2440 part/models.py:2442
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2445
msgid "BOM Item"
msgstr ""
-#: part/models.py:2527
+#: part/models.py:2564
msgid "Part 1"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Part 2"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2563
+#: part/models.py:2600
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4247,14 +4197,6 @@ msgstr ""
msgid "Part Attachments"
msgstr ""
-#: part/templates/part/bom-delete.html:6
-msgid "Are you sure you want to delete this BOM item?"
-msgstr ""
-
-#: part/templates/part/bom-delete.html:8
-msgid "Deleting this entry will remove the BOM row from the following part"
-msgstr ""
-
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
@@ -4303,7 +4245,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:2154
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr ""
@@ -4319,8 +4261,8 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:590
-#: templates/js/stock.js:1313
+#: part/templates/part/bom.html:160 part/views.py:450
+#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr ""
@@ -4401,7 +4343,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:2564
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr ""
@@ -4461,11 +4403,12 @@ msgid "View grid display"
msgstr ""
#: part/templates/part/category.html:218
-#: stock/templates/stock/location.html:192 templates/js/stock.js:737
+#: stock/templates/stock/location.html:192 templates/js/stock.js:751
msgid "Create new location"
msgstr ""
#: part/templates/part/category.html:223 part/templates/part/category.html:253
+#: part/templates/part/part_base.html:378
msgid "New Category"
msgstr ""
@@ -4477,10 +4420,18 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:260 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1223
msgid "Create new Stock Location"
msgstr ""
+#: part/templates/part/category.html:279
+msgid "Select parent category"
+msgstr ""
+
+#: part/templates/part/category.html:286 part/views.py:2389
+msgid "Edit Part Category"
+msgstr ""
+
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4526,7 +4477,7 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:466
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr ""
@@ -4639,36 +4590,6 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:101
-msgid "Internal Price Information"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:19 part/views.py:2989
-msgid "Add Internal Price Break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:28 templates/403.html:5
-#: templates/403.html:11
-msgid "Permission Denied"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:31 templates/403.html:14
-msgid "You do not have permission to view this page."
-msgstr ""
-
-#: part/templates/part/internal_prices.html:59
-msgid "No internal price break information found"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:110
-msgid "Edit internal price break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:111
-msgid "Delete internal price break"
-msgstr ""
-
#: part/templates/part/manufacturer.html:11
msgid "Part Manufacturers"
msgstr ""
@@ -4678,7 +4599,7 @@ msgid "Delete manufacturer parts"
msgstr ""
#: part/templates/part/manufacturer.html:53
-#: part/templates/part/supplier.html:57
+#: part/templates/part/supplier.html:56
msgid "Create new manufacturer"
msgstr ""
@@ -4702,125 +4623,27 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
-msgid "Order Price Information"
+#: part/templates/part/navbar.html:77
+msgid "Prices"
msgstr ""
-#: part/templates/part/navbar.html:78
-msgid "Order Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
-#: part/templates/part/part_pricing.html:82
-msgid "Internal Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:107
-msgid "Sales Price Information"
-msgstr ""
-
-#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:109 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:112 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
+#: part/templates/part/navbar.html:117 part/templates/part/navbar.html:120
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:130 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:25
-#: part/templates/part/part_base.html:282
-msgid "Calculate"
-msgstr ""
-
-#: part/templates/part/order_prices.html:32
-msgid "Pricing ranges"
-msgstr ""
-
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/part_pricing.html:22
-msgid "Supplier Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:38
-#: part/templates/part/order_prices.html:63
-#: part/templates/part/order_prices.html:95
-#: part/templates/part/order_prices.html:109
-#: part/templates/part/part_pricing.html:26
-#: part/templates/part/part_pricing.html:52
-#: part/templates/part/part_pricing.html:85
-#: part/templates/part/part_pricing.html:100
-msgid "Unit Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:45
-#: part/templates/part/order_prices.html:70
-#: part/templates/part/order_prices.html:100
-#: part/templates/part/order_prices.html:114
-#: part/templates/part/part_pricing.html:32
-#: part/templates/part/part_pricing.html:58
-#: part/templates/part/part_pricing.html:89
-#: part/templates/part/part_pricing.html:104
-msgid "Total Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:53
-#: part/templates/part/part_pricing.html:40
-msgid "No supplier pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:129
-#: part/templates/part/part_pricing.html:48
-msgid "BOM Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:78
-#: part/templates/part/part_pricing.html:66
-msgid "Note: BOM pricing is incomplete for this part"
-msgstr ""
-
-#: part/templates/part/order_prices.html:85
-#: part/templates/part/part_pricing.html:73
-msgid "No BOM pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:123
-#: part/templates/part/part_pricing.html:113
-msgid "No pricing information is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:139
-msgid "Stock Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:147
-msgid "No stock pricing history is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:166
-#, python-format
-msgid "Single Price - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:178
-#, python-format
-msgid "Single Price Difference - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:190
-#, python-format
-msgid "Part Single Price - %(currency)s"
-msgstr ""
-
#: part/templates/part/params.html:17
msgid "Add new parameter"
msgstr ""
@@ -4841,8 +4664,8 @@ msgstr ""
msgid "Part List"
msgstr ""
-#: part/templates/part/part_base.html:26 templates/js/company.js:156
-#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161
+#: part/templates/part/part_base.html:26 templates/js/company.js:280
+#: templates/js/company.js:480 templates/js/part.js:84 templates/js/part.js:161
msgid "Inactive"
msgstr ""
@@ -4905,7 +4728,7 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131
+#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:132
msgid "Required for Build Orders"
msgstr ""
@@ -4926,10 +4749,86 @@ msgstr ""
msgid "Building"
msgstr ""
+#: part/templates/part/part_base.html:285 part/templates/part/prices.html:131
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:379
+msgid "Create New Part Category"
+msgstr ""
+
+#: part/templates/part/part_base.html:387
+msgid "New Parent"
+msgstr ""
+
+#: part/templates/part/part_base.html:435
+msgid "Edit Part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:27
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:31
+#: part/templates/part/prices.html:58 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:107
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:89
+#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:38
+#: part/templates/part/prices.html:65 part/templates/part/prices.html:95
+#: part/templates/part/prices.html:112
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:46
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:55
+#: part/templates/part/prices.html:235
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:73
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:80
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:113
+#: part/templates/part/prices.html:121
+msgid "No pricing information is available for this part."
+msgstr ""
+
#: part/templates/part/part_tests.html:17
msgid "Add Test Template"
msgstr ""
+#: part/templates/part/part_tests.html:61
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:79
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:91
+msgid "Delete Test Result Template"
+msgstr ""
+
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr ""
@@ -4964,12 +4863,98 @@ msgstr ""
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
-#: part/templates/part/related.html:18
-msgid "Add Related"
+#: part/templates/part/prices.html:12
+msgid "General Price Information"
msgstr ""
-#: part/templates/part/sale_prices.html:10
-msgid "Sell Price Information"
+#: part/templates/part/prices.html:22
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:28
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:29
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:56
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:104
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:105
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:127
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:146
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:147 part/templates/part/prices.html:167
+#: part/templates/part/prices.html:193 part/templates/part/prices.html:224
+#: part/templates/part/prices.html:251 part/templates/part/prices.html:279
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:172
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:180
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:192
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:206 part/views.py:2859
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:223
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:250
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:290
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:340
+#, python-format
+msgid "Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:352
+#, python-format
+msgid "Single Price Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:364
+#, python-format
+msgid "Part Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:464
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/related.html:18
+msgid "Add Related"
msgstr ""
#: part/templates/part/sales_orders.html:18
@@ -5043,216 +5028,180 @@ msgstr ""
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:164
-msgid "Add part attachment"
-msgstr ""
-
-#: part/views.py:217 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr ""
-
-#: part/views.py:221
-msgid "Part attachment updated"
-msgstr ""
-
-#: part/views.py:236
-msgid "Delete Part Attachment"
-msgstr ""
-
-#: part/views.py:244
-msgid "Deleted part attachment"
-msgstr ""
-
-#: part/views.py:253
-msgid "Create Test Template"
-msgstr ""
-
-#: part/views.py:280
-msgid "Edit Test Template"
-msgstr ""
-
-#: part/views.py:294
-msgid "Delete Test Template"
-msgstr ""
-
-#: part/views.py:301
+#: part/views.py:161
msgid "Set Part Category"
msgstr ""
-#: part/views.py:351
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:386
+#: part/views.py:246
msgid "Create Variant"
msgstr ""
-#: part/views.py:471
+#: part/views.py:331
msgid "Copied part"
msgstr ""
-#: part/views.py:525 part/views.py:663
+#: part/views.py:385 part/views.py:523
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:595
+#: part/views.py:455
msgid "Created new part"
msgstr ""
-#: part/views.py:763
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1092
+#: part/views.py:925
+msgid "None"
+msgstr ""
+
+#: part/views.py:984
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1194
-msgid "Upload Part Image"
-msgstr ""
-
-#: part/views.py:1200 part/views.py:1235
-msgid "Updated part image"
-msgstr ""
-
-#: part/views.py:1209
+#: part/views.py:1086
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1238
+#: part/views.py:1112
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:1115
msgid "Part image not found"
msgstr ""
-#: part/views.py:1249
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1284
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1314
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1335
+#: part/views.py:1212
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1356
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1367
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1501
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1862
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1887 part/views.py:1890
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr ""
-#: part/views.py:1896
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1934
+#: part/views.py:1811
msgid "Select a part"
msgstr ""
-#: part/views.py:1940
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1944
+#: part/views.py:1821
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2090
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2222
+#: part/views.py:2099
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2363
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2373
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2380
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2388
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2438
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2452
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2512
-msgid "Edit Part Category"
-msgstr ""
-
-#: part/views.py:2550
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2556
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2608
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2709
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2765
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2784
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2854
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2910
-msgid "Confim BOM item deletion"
+#: part/views.py:2792
+msgid "Added new price break"
msgstr ""
-#: part/views.py:2998
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3006
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5358,17 +5307,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1739
+#: stock/models.py:1759
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1745
+#: stock/models.py:1765
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:1012
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr ""
@@ -5380,287 +5329,287 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:212
+#: stock/api.py:211
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:280
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
+#: stock/forms.py:81 stock/forms.py:385 stock/models.py:513
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:419
+#: stock/forms.py:82 stock/forms.py:386
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:118
+#: stock/forms.py:85
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:169
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:173 stock/forms.py:349
+#: stock/forms.py:140 stock/forms.py:316
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:203 stock/forms.py:259
+#: stock/forms.py:170 stock/forms.py:226
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:75
+#: stock/forms.py:234 templates/js/table_filters.js:75
#: templates/js/table_filters.js:138
msgid "Include sublocations"
msgstr ""
-#: stock/forms.py:267
+#: stock/forms.py:234
msgid "Include stock items in sub locations"
msgstr ""
-#: stock/forms.py:302
+#: stock/forms.py:269
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:309
+#: stock/forms.py:276
msgid "Stock quantity to assign"
msgstr ""
-#: stock/forms.py:337
+#: stock/forms.py:304
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:347
+#: stock/forms.py:314
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/forms.py:375
+#: stock/forms.py:342
msgid "Destination stock location"
msgstr ""
-#: stock/forms.py:377
+#: stock/forms.py:344
msgid "Add note (required)"
msgstr ""
-#: stock/forms.py:381 stock/views.py:852 stock/views.py:1051
+#: stock/forms.py:348 stock/views.py:705 stock/views.py:904
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/forms.py:381
+#: stock/forms.py:348
msgid "Confirm movement of stock items"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set Default Location"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:52 stock/models.py:542
+#: stock/models.py:56 stock/models.py:550
msgid "Owner"
msgstr ""
-#: stock/models.py:53 stock/models.py:543
+#: stock/models.py:57 stock/models.py:551
msgid "Select Owner"
msgstr ""
-#: stock/models.py:271
+#: stock/models.py:279
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:307
+#: stock/models.py:315
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:317 stock/models.py:326
+#: stock/models.py:325 stock/models.py:334
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:318
+#: stock/models.py:326
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:340
+#: stock/models.py:348
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:346
+#: stock/models.py:354
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:361
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:395
+#: stock/models.py:403
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:412
msgid "Base part"
msgstr ""
-#: stock/models.py:413
+#: stock/models.py:421
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:426 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:421
+#: stock/models.py:429
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:428
+#: stock/models.py:436
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:433 stock/templates/stock/item_base.html:270
+#: stock/models.py:441 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:436
+#: stock/models.py:444
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:452
+#: stock/models.py:460
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:472
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:476
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:477
+#: stock/models.py:485
msgid "Source Build"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:487
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:490
+#: stock/models.py:498
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:493
+#: stock/models.py:501
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:499
+#: stock/models.py:507
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:514
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:529 stock/templates/stock/item_notes.html:13
+#: stock/models.py:537 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:538
+#: stock/models.py:546
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1006
+#: stock/models.py:1014
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1012
+#: stock/models.py:1020
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1018
+#: stock/models.py:1026
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1021
+#: stock/models.py:1029
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1024
+#: stock/models.py:1032
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1031
+#: stock/models.py:1039
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1197
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1679
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1716
+#: stock/models.py:1736
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1722
+#: stock/models.py:1742
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1740
+#: stock/models.py:1760
msgid "Test name"
msgstr ""
-#: stock/models.py:1746 templates/js/table_filters.js:217
+#: stock/models.py:1766 templates/js/table_filters.js:222
msgid "Test result"
msgstr ""
-#: stock/models.py:1752
+#: stock/models.py:1772
msgid "Test output value"
msgstr ""
-#: stock/models.py:1759
+#: stock/models.py:1779
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1785
msgid "Test notes"
msgstr ""
@@ -5850,6 +5799,10 @@ msgstr ""
msgid "No stocktake performed"
msgstr ""
+#: stock/templates/stock/item_base.html:499
+msgid "Edit Stock Status"
+msgstr ""
+
#: stock/templates/stock/item_childs.html:12
msgid "Child Stock Items"
msgstr ""
@@ -5909,6 +5862,19 @@ msgstr ""
msgid "Add Test Data"
msgstr ""
+#: stock/templates/stock/item_tests.html:86
+#: stock/templates/stock/item_tests.html:111
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:131
+msgid "Edit Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:145
+msgid "Delete Test Result"
+msgstr ""
+
#: stock/templates/stock/location.html:20
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
@@ -5957,7 +5923,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:97 users/models.py:41
+#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -5997,7 +5963,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1196
msgid "Convert Stock Item"
msgstr ""
@@ -6030,8 +5996,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
-#: stock/views.py:1830
+#: stock/views.py:230 stock/views.py:1175 stock/views.py:1297
+#: stock/views.py:1662
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -6039,208 +6005,188 @@ msgstr ""
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:265
-msgid "Add Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:311
-msgid "Edit Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:327
-msgid "Delete Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:343
+#: stock/views.py:264
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:273
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:297
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:385
+#: stock/views.py:306
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:396
+#: stock/views.py:317
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:407
+#: stock/views.py:328
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:345
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:444
-msgid "Add Test Result"
-msgstr ""
-
-#: stock/views.py:484
-msgid "Edit Test Result"
-msgstr ""
-
-#: stock/views.py:501
-msgid "Delete Test Result"
-msgstr ""
-
-#: stock/views.py:509
+#: stock/views.py:362
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:630
+#: stock/views.py:483
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:656
+#: stock/views.py:509
msgid "Install Stock Item"
msgstr ""
-#: stock/views.py:755
+#: stock/views.py:608
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:863
+#: stock/views.py:716
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:888
+#: stock/views.py:741
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Take"
msgstr ""
-#: stock/views.py:1001
+#: stock/views.py:854
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:187
+#: stock/views.py:854 users/models.py:188
msgid "Add"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:855
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:1031
+#: stock/views.py:884
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:1036
+#: stock/views.py:889
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:1043
+#: stock/views.py:896
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:1107
+#: stock/views.py:960
msgid "No action performed"
msgstr ""
-#: stock/views.py:1122
+#: stock/views.py:975
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:1137
+#: stock/views.py:990
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:1150
+#: stock/views.py:1003
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:1190
+#: stock/views.py:1043
msgid "No items were moved"
msgstr ""
-#: stock/views.py:1193
+#: stock/views.py:1046
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:1212
+#: stock/views.py:1065
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1222
-msgid "Edit Stock Item Status"
-msgstr ""
-
-#: stock/views.py:1245
+#: stock/views.py:1077
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1482
+#: stock/views.py:1314
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:327
+#: stock/views.py:1407 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1717
+#: stock/views.py:1549
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1799
+#: stock/views.py:1631
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1899
+#: stock/views.py:1731
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1912
+#: stock/views.py:1744
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1923
+#: stock/views.py:1755
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1930
+#: stock/views.py:1762
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1939
+#: stock/views.py:1771
msgid "Add Stock Tracking Entry"
msgstr ""
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
msgstr ""
@@ -6269,35 +6215,39 @@ msgstr ""
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:145
-msgid "Expired Stock"
+#: templates/InvenTree/index.html:131
+msgid "Depleted Stock"
msgstr ""
#: templates/InvenTree/index.html:146
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:147
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:192
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:185
+#: templates/InvenTree/index.html:193
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:214
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:207
+#: templates/InvenTree/index.html:215
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:237
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:230
+#: templates/InvenTree/index.html:238
msgid "Overdue Sales Orders"
msgstr ""
@@ -6582,24 +6532,12 @@ msgstr ""
msgid "copy version information"
msgstr ""
-#: templates/about.html:100 templates/js/modals.js:568
-#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54
-#: templates/modals.html:97
+#: templates/about.html:100 templates/js/modals.js:34
+#: templates/js/modals.js:677 templates/js/modals.js:970
+#: templates/modals.html:29 templates/modals.html:54 templates/modals.html:97
msgid "Close"
msgstr ""
-#: templates/attachment_table.html:6
-msgid "Add Attachment"
-msgstr ""
-
-#: templates/attachment_table.html:17
-msgid "Uploaded"
-msgstr ""
-
-#: templates/attachment_table.html:35
-msgid "Delete attachment"
-msgstr ""
-
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6616,6 +6554,22 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
+#: templates/js/attachment.js:16
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/attachment.js:56
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/attachment.js:69
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/attachment.js:76
+msgid "Delete attachment"
+msgstr ""
+
#: templates/js/barcode.js:8
msgid "Scan barcode data here using wedge scanner"
msgstr ""
@@ -6644,7 +6598,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:921
+#: templates/js/barcode.js:119 templates/js/modals.js:1030
msgid "Invalid server response"
msgstr ""
@@ -6744,7 +6698,7 @@ msgstr ""
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:372
+#: templates/js/bom.js:372 templates/js/bom.js:519
msgid "Delete BOM Item"
msgstr ""
@@ -6772,7 +6726,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/build.js:222 templates/js/order.js:382
+#: templates/js/build.js:222 templates/js/order.js:449
msgid "Location not specified"
msgstr ""
@@ -6798,7 +6752,7 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
-#: templates/js/stock.js:514 templates/js/stock.js:966
+#: templates/js/stock.js:514 templates/js/stock.js:980
msgid "Select"
msgstr ""
@@ -6810,45 +6764,69 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/company.js:74
+#: templates/js/company.js:45
+msgid "Edit Company"
+msgstr ""
+
+#: templates/js/company.js:66
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/company.js:143
msgid "Parts Supplied"
msgstr ""
-#: templates/js/company.js:83
+#: templates/js/company.js:152
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/company.js:96
+#: templates/js/company.js:165
msgid "No company information found"
msgstr ""
-#: templates/js/company.js:129
+#: templates/js/company.js:183
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/company.js:200
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/company.js:253
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/company.js:148 templates/js/company.js:347
+#: templates/js/company.js:272 templates/js/company.js:472
#: templates/js/part.js:68 templates/js/part.js:153
msgid "Template part"
msgstr ""
-#: templates/js/company.js:152 templates/js/company.js:351
+#: templates/js/company.js:276 templates/js/company.js:476
#: templates/js/part.js:72 templates/js/part.js:157
msgid "Assembled part"
msgstr ""
-#: templates/js/company.js:226
+#: templates/js/company.js:350
msgid "No parameters found"
msgstr ""
-#: templates/js/company.js:262
+#: templates/js/company.js:386
msgid "Edit parameter"
msgstr ""
-#: templates/js/company.js:263
+#: templates/js/company.js:387
msgid "Delete parameter"
msgstr ""
-#: templates/js/company.js:328
+#: templates/js/company.js:406
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/company.js:417
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/company.js:453
msgid "No supplier parts found"
msgstr ""
@@ -6876,6 +6854,83 @@ msgstr ""
msgid "Create filter"
msgstr ""
+#: templates/js/forms.js:278 templates/js/forms.js:291
+#: templates/js/forms.js:303 templates/js/forms.js:315
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/forms.js:279
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:292
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:304
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:316
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:583 templates/js/modals.js:1040
+msgid "No Response"
+msgstr ""
+
+#: templates/js/forms.js:584 templates/js/modals.js:1041
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/forms.js:590 templates/js/modals.js:1050
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/forms.js:591 templates/js/modals.js:1051
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/forms.js:597 templates/js/modals.js:1055
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/forms.js:598 templates/js/modals.js:1056
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/forms.js:604 templates/js/modals.js:1060
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/forms.js:605 templates/js/modals.js:1061
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/forms.js:611 templates/js/modals.js:1065
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/forms.js:612 templates/js/modals.js:1066
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/forms.js:618 templates/js/modals.js:1069
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/forms.js:788 templates/modals.html:21 templates/modals.html:47
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/forms.js:1161
+msgid "Searching"
+msgstr ""
+
+#: templates/js/forms.js:1301
+msgid "Clear input"
+msgstr ""
+
#: templates/js/label.js:10 templates/js/report.js:98
msgid "Select Stock Items"
msgstr ""
@@ -6916,112 +6971,102 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:265
-msgid "Waiting for server..."
-msgstr ""
-
-#: templates/js/modals.js:424
-msgid "Show Error Information"
-msgstr ""
-
-#: templates/js/modals.js:491 templates/modals.html:76
-msgid "Accept"
-msgstr ""
-
-#: templates/js/modals.js:492 templates/modals.html:75
+#: templates/js/modals.js:59 templates/js/modals.js:105
+#: templates/js/modals.js:601 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:556
-msgid "Loading Data"
-msgstr ""
-
-#: templates/js/modals.js:567 templates/js/modals.js:860
+#: templates/js/modals.js:60 templates/js/modals.js:104
+#: templates/js/modals.js:676 templates/js/modals.js:969
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:103
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/modals.js:374
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/modals.js:533
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/modals.js:600 templates/modals.html:76
+msgid "Accept"
+msgstr ""
+
+#: templates/js/modals.js:665
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/modals.js:920
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:920
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:824
+#: templates/js/modals.js:933
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:921
+#: templates/js/modals.js:1030
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:931
-msgid "No Response"
-msgstr ""
-
-#: templates/js/modals.js:932
-msgid "No response from the InvenTree server"
-msgstr ""
-
-#: templates/js/modals.js:936
+#: templates/js/modals.js:1045
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:937
+#: templates/js/modals.js:1046
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:941
-msgid "Error 401: Not Authenticated"
+#: templates/js/model_renderers.js:21
+msgid "Company ID"
msgstr ""
-#: templates/js/modals.js:942
-msgid "Authentication credentials not supplied"
+#: templates/js/model_renderers.js:63
+msgid "Location ID"
msgstr ""
-#: templates/js/modals.js:946
-msgid "Error 403: Permission Denied"
+#: templates/js/model_renderers.js:90
+msgid "Part ID"
msgstr ""
-#: templates/js/modals.js:947
-msgid "You do not have the required permissions to access this function"
+#: templates/js/model_renderers.js:126
+msgid "Category ID"
msgstr ""
-#: templates/js/modals.js:951
-msgid "Error 404: Resource Not Found"
+#: templates/js/model_renderers.js:150
+msgid "Supplier Part ID"
msgstr ""
-#: templates/js/modals.js:952
-msgid "The requested resource could not be located on the server"
+#: templates/js/order.js:31
+msgid "Create Sales Order"
msgstr ""
-#: templates/js/modals.js:956
-msgid "Error 408: Timeout"
-msgstr ""
-
-#: templates/js/modals.js:957
-msgid "Connection timeout while requesting data from server"
-msgstr ""
-
-#: templates/js/modals.js:960
-msgid "Error requesting form data"
-msgstr ""
-
-#: templates/js/order.js:138
+#: templates/js/order.js:200
msgid "No purchase orders found"
msgstr ""
-#: templates/js/order.js:162 templates/js/order.js:257
+#: templates/js/order.js:224 templates/js/order.js:319
msgid "Order is overdue"
msgstr ""
-#: templates/js/order.js:234
+#: templates/js/order.js:296
msgid "No sales orders found"
msgstr ""
-#: templates/js/order.js:343
+#: templates/js/order.js:333
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/order.js:410
msgid "No sales order allocations found"
msgstr ""
@@ -7061,11 +7106,11 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:476 templates/js/table_filters.js:323
+#: templates/js/part.js:476 templates/js/table_filters.js:328
msgid "Low stock"
msgstr ""
-#: templates/js/part.js:660 templates/js/stock.js:990
+#: templates/js/part.js:660 templates/js/stock.js:1004
msgid "Path"
msgstr ""
@@ -7085,7 +7130,22 @@ msgstr ""
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/part.js:806
+#: templates/js/part.js:786
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/part.js:839
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:840
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:959
msgid "Single Price Difference"
msgstr ""
@@ -7263,75 +7323,75 @@ msgstr ""
msgid "Stocktake"
msgstr ""
-#: templates/js/stock.js:853
+#: templates/js/stock.js:867
msgid "Stock Status"
msgstr ""
-#: templates/js/stock.js:868
+#: templates/js/stock.js:882
msgid "Set Stock Status"
msgstr ""
-#: templates/js/stock.js:882
+#: templates/js/stock.js:896
msgid "Select Status Code"
msgstr ""
-#: templates/js/stock.js:883
+#: templates/js/stock.js:897
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1022
+#: templates/js/stock.js:1036
msgid "Invalid date"
msgstr ""
-#: templates/js/stock.js:1069
+#: templates/js/stock.js:1083
msgid "Location no longer exists"
msgstr ""
-#: templates/js/stock.js:1088
+#: templates/js/stock.js:1102
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/stock.js:1107
+#: templates/js/stock.js:1121
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/stock.js:1125
+#: templates/js/stock.js:1139
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/stock.js:1148
+#: templates/js/stock.js:1162
msgid "Added"
msgstr ""
-#: templates/js/stock.js:1156
+#: templates/js/stock.js:1170
msgid "Removed"
msgstr ""
-#: templates/js/stock.js:1188
+#: templates/js/stock.js:1202
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1200
+#: templates/js/stock.js:1214
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1201
+#: templates/js/stock.js:1215
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1325
+#: templates/js/stock.js:1339
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1366
+#: templates/js/stock.js:1380
msgid "No installed items"
msgstr ""
-#: templates/js/stock.js:1389
+#: templates/js/stock.js:1403
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1417
+#: templates/js/stock.js:1431
msgid "Uninstall Stock Item"
msgstr ""
@@ -7352,7 +7412,7 @@ msgid "Include locations"
msgstr ""
#: templates/js/table_filters.js:86 templates/js/table_filters.js:87
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:305
msgid "Include subcategories"
msgstr ""
@@ -7385,7 +7445,7 @@ msgstr ""
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:290
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:295
msgid "Active parts"
msgstr ""
@@ -7457,43 +7517,51 @@ msgstr ""
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:236
+#: templates/js/table_filters.js:211
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/table_filters.js:212
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/table_filters.js:241
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
+#: templates/js/table_filters.js:265 templates/js/table_filters.js:282
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:306
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:305
+#: templates/js/table_filters.js:310
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:311
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:311
+#: templates/js/table_filters.js:316
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:319
+#: templates/js/table_filters.js:324
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:335
+#: templates/js/table_filters.js:340
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:347
+#: templates/js/table_filters.js:352
msgid "Purchasable"
msgstr ""
@@ -7550,10 +7618,6 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:47
-msgid "Form errors exist"
-msgstr ""
-
#: templates/navbar.html:13
msgid "Toggle navigation"
msgstr ""
@@ -7570,7 +7634,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:38
+#: templates/navbar.html:77 users/models.py:39
msgid "Admin"
msgstr ""
@@ -7790,35 +7854,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:174
+#: users/models.py:175
msgid "Permission set"
msgstr ""
-#: users/models.py:182
+#: users/models.py:183
msgid "Group"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "View"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "Permission to view items"
msgstr ""
-#: users/models.py:187
+#: users/models.py:188
msgid "Permission to add items"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Change"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:191
+#: users/models.py:192
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 44f96424bc..3b11868014 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-01 22:35+0000\n"
-"PO-Revision-Date: 2021-07-01 22:38\n"
+"POT-Creation-Date: 2021-07-03 12:15+0000\n"
+"PO-Revision-Date: 2021-07-03 12:44\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -29,14 +29,14 @@ msgstr "Aucune action spécifiée"
msgid "No matching action found"
msgstr "Aucune action correspondante trouvée"
-#: InvenTree/fields.py:84
+#: InvenTree/fields.py:99
msgid "Enter date"
msgstr "Entrer la date"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
-#: order/forms.py:75 part/forms.py:134
+#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
+#: order/forms.py:74 part/forms.py:118 templates/js/forms.js:486
msgid "Confirm"
msgstr "Confirmer"
@@ -77,8 +77,8 @@ msgstr "Sélectionnez une catégorie"
msgid "Duplicate serial: {n}"
msgstr "Dupliquer le numéro de série: {n}"
-#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
-#: stock/views.py:1795
+#: InvenTree/helpers.py:403 order/models.py:311 order/models.py:421
+#: stock/views.py:1627
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
@@ -106,49 +106,53 @@ msgstr "Aucun numéro de série trouvé"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})"
-#: InvenTree/models.py:59 stock/models.py:1758
+#: InvenTree/models.py:61 stock/models.py:1778
msgid "Attachment"
msgstr "Pièce jointe"
-#: InvenTree/models.py:60
+#: InvenTree/models.py:62
msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
-#: InvenTree/models.py:62 templates/attachment_table.html:16
+#: InvenTree/models.py:64 templates/js/attachment.js:52
msgid "Comment"
msgstr "Commentaire"
-#: InvenTree/models.py:62
+#: InvenTree/models.py:64
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2043
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1179
+#: templates/js/stock.js:1193
msgid "User"
msgstr "Utilisateur"
-#: InvenTree/models.py:72
+#: InvenTree/models.py:74
msgid "upload date"
msgstr "date de chargement"
-#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396
-#: label/models.py:102 part/models.py:671 part/models.py:2163
+#: InvenTree/models.py:102
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:414
+#: label/models.py:103 part/models.py:680 part/models.py:2192
#: part/templates/part/params.html:27 report/models.py:180
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/company.js:235 templates/js/part.js:118
-#: templates/js/part.js:642 templates/js/stock.js:972
+#: templates/js/company.js:359 templates/js/part.js:118
+#: templates/js/part.js:642 templates/js/stock.js:986
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:114 build/models.py:135
-#: build/templates/build/detail.html:21 company/models.py:339
-#: company/models.py:532 company/templates/company/detail.html:27
+#: InvenTree/models.py:125 build/models.py:139
+#: build/templates/build/detail.html:21 company/models.py:353
+#: company/models.py:554 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
-#: part/models.py:695 part/templates/part/detail.html:54
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:110
+#: order/models.py:154 order/templates/order/purchase_order_detail.html:174
+#: part/models.py:704 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
#: report/templates/report/inventree_build_order_base.html:118
@@ -156,39 +160,43 @@ msgstr "Nom"
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
#: templates/js/build.js:834 templates/js/build.js:1102
-#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
+#: templates/js/company.js:125 templates/js/order.js:245
+#: templates/js/order.js:347 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
-#: templates/js/stock.js:557 templates/js/stock.js:984
-#: templates/js/stock.js:1029
+#: templates/js/stock.js:557 templates/js/stock.js:998
+#: templates/js/stock.js:1043
msgid "Description"
msgstr "Description"
-#: InvenTree/models.py:115
+#: InvenTree/models.py:126
msgid "Description (optional)"
msgstr "Description (facultative)"
-#: InvenTree/models.py:123
+#: InvenTree/models.py:134
msgid "parent"
msgstr "parent"
-#: InvenTree/settings.py:504
+#: InvenTree/serializers.py:52
+msgid "Must be a valid number"
+msgstr ""
+
+#: InvenTree/settings.py:505
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:508
+#: InvenTree/settings.py:509
msgid "Turkish"
msgstr "Turc"
@@ -446,50 +454,48 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
+#: build/templates/build/detail.html:121
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:881 templates/js/order.js:200
-#: templates/js/order.js:298
+#: templates/js/build.js:881 templates/js/order.js:262
+#: templates/js/order.js:365
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:225
+#: build/forms.py:43 build/models.py:229
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1354
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:31 common/models.py:741
-#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
-#: order/forms.py:289 order/models.py:613 order/models.py:835
-#: order/templates/order/order_wizard/match_parts.html:30
+#: company/forms.py:124 company/templates/company/supplier_part_pricing.html:79
+#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:702
+#: order/models.py:941 order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/purchase_order_detail.html:179
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:162
-#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
-#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
-#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:203
-#: part/templates/part/part_pricing.html:16
-#: part/templates/part/sale_prices.html:85
+#: order/templates/order/purchase_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:80
+#: order/templates/order/sales_order_detail.html:87
+#: order/templates/order/sales_order_detail.html:172
+#: order/templates/order/sales_order_detail.html:244 part/forms.py:314
+#: part/forms.py:344 part/forms.py:360 part/forms.py:376 part/models.py:2330
+#: part/templates/part/part_pricing.html:16 part/templates/part/prices.html:377
+#: part/templates/part/prices.html:474
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308
+#: stock/forms.py:142 stock/forms.py:275
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
-#: templates/js/build.js:1112 templates/js/order.js:393
-#: templates/js/part.js:796 templates/js/stock.js:1164
-#: templates/js/stock.js:1383
+#: templates/js/build.js:1112 templates/js/model_renderers.js:43
+#: templates/js/order.js:460 templates/js/part.js:827 templates/js/part.js:949
+#: templates/js/part.js:1005 templates/js/stock.js:1178
+#: templates/js/stock.js:1397
msgid "Quantity"
msgstr "Quantité"
@@ -501,7 +507,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:114 stock/forms.py:85
msgid "Serial Numbers"
msgstr "Numéros de série"
@@ -530,12 +536,12 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: stock/forms.py:347 stock/templates/stock/item_base.html:285
+#: stock/forms.py:314 stock/templates/stock/item_base.html:285
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:586 templates/js/order.js:378
-#: templates/js/stock.js:643 templates/js/stock.js:1056
+#: templates/js/build.js:586 templates/js/order.js:445
+#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr ""
@@ -544,13 +550,13 @@ msgid "Location of completed parts"
msgstr "Emplacement des pièces terminées"
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:465
+#: build/templates/build/detail.html:59 order/models.py:545
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:868
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:630 templates/js/stock.js:1133
-#: templates/js/stock.js:1399
+#: templates/js/order.js:249 templates/js/order.js:352
+#: templates/js/stock.js:630 templates/js/stock.js:1147
+#: templates/js/stock.js:1413
msgid "Status"
msgstr ""
@@ -582,60 +588,60 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:66 build/templates/build/build_base.html:9
+#: build/models.py:70 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:195
msgid "Build Order"
msgstr ""
-#: build/models.py:67 build/templates/build/index.html:8
+#: build/models.py:71 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
-#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:191
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
+#: templates/InvenTree/settings/tabs.html:34 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:127
+#: build/models.py:131
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:98 order/models.py:615
-#: order/templates/order/purchase_order_detail.html:174
-#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
+#: build/models.py:132 order/models.py:242 order/models.py:529
+#: order/models.py:709 order/templates/order/purchase_order_detail.html:201
+#: order/templates/order/sales_order_detail.html:239 part/models.py:2339
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr "Référence"
-#: build/models.py:138
+#: build/models.py:142
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:147 build/templates/build/build_base.html:163
+#: build/models.py:151 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr ""
-#: build/models.py:148
+#: build/models.py:152
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:153 build/templates/build/auto_allocate.html:16
+#: build/models.py:157 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:657 order/models.py:712
+#: build/templates/build/detail.html:26 company/models.py:689
+#: order/models.py:755 order/models.py:814
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:132
+#: order/templates/order/purchase_order_detail.html:159
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:214 part/models.py:321
-#: part/models.py:1975 part/models.py:1987 part/models.py:2002
-#: part/models.py:2020 part/models.py:2095 part/models.py:2191
-#: part/models.py:2277 part/templates/part/part_app_base.html:8
+#: order/templates/order/sales_order_detail.html:224 part/models.py:325
+#: part/models.py:1988 part/models.py:2004 part/models.py:2023
+#: part/models.py:2041 part/models.py:2120 part/models.py:2224
+#: part/models.py:2314 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
@@ -644,222 +650,222 @@ msgstr ""
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
#: templates/js/build.js:552 templates/js/build.js:839
-#: templates/js/build.js:1079 templates/js/company.js:140
-#: templates/js/company.js:339 templates/js/part.js:241
+#: templates/js/build.js:1079 templates/js/company.js:264
+#: templates/js/company.js:464 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
-#: templates/js/stock.js:1371
+#: templates/js/stock.js:1385
msgid "Part"
msgstr "Pièce"
-#: build/models.py:161
+#: build/models.py:165
msgid "Select part to build"
msgstr "Sélectionnez la pièce à construire"
-#: build/models.py:166
+#: build/models.py:170
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:170
+#: build/models.py:174
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:175
+#: build/models.py:179
msgid "Source Location"
msgstr ""
-#: build/models.py:179
+#: build/models.py:183
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:184
+#: build/models.py:188
msgid "Destination Location"
msgstr ""
-#: build/models.py:188
+#: build/models.py:192
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:192
+#: build/models.py:196
msgid "Build Quantity"
msgstr ""
-#: build/models.py:195
+#: build/models.py:199
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:199
+#: build/models.py:203
msgid "Completed items"
msgstr ""
-#: build/models.py:201
+#: build/models.py:205
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:205 part/templates/part/part_base.html:167
+#: build/models.py:209 part/templates/part/part_base.html:167
msgid "Build Status"
msgstr ""
-#: build/models.py:209
+#: build/models.py:213
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:462
+#: build/models.py:217 stock/models.py:470
msgid "Batch Code"
msgstr ""
-#: build/models.py:217
+#: build/models.py:221
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:104 part/models.py:867
-#: part/templates/part/detail.html:126 templates/js/order.js:293
+#: build/models.py:224 order/models.py:158 part/models.py:876
+#: part/templates/part/detail.html:126 templates/js/order.js:360
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:224 order/models.py:471
+#: build/models.py:228 order/models.py:551
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:217 templates/js/build.js:886
+#: build/models.py:232 order/models.py:284 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
-#: build/models.py:234
+#: build/models.py:238
msgid "completed by"
msgstr ""
-#: build/models.py:242
+#: build/models.py:246
msgid "Issued by"
msgstr ""
-#: build/models.py:243
+#: build/models.py:247
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:118
+#: build/models.py:255 build/templates/build/build_base.html:184
+#: build/templates/build/detail.html:105 order/models.py:172
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:871
+#: order/templates/order/sales_order_base.html:140 part/models.py:880
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:252
+#: build/models.py:256
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:257 build/templates/build/detail.html:91
+#: build/models.py:261 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
#: company/templates/company/manufacturer_part_detail.html:28
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:456 stock/templates/stock/item_base.html:345
+#: stock/models.py:464 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:258 part/models.py:729 stock/models.py:458
+#: build/models.py:262 part/models.py:738 stock/models.py:466
msgid "Link to external URL"
msgstr ""
-#: build/models.py:262 build/templates/build/navbar.html:53
-#: company/models.py:132 company/models.py:539
+#: build/models.py:266 build/templates/build/navbar.html:53
+#: company/models.py:141 company/models.py:561
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:122
-#: order/models.py:617 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:176
+#: order/models.py:711 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/purchase_order_detail.html:243
-#: order/templates/order/sales_order_detail.html:309
+#: order/templates/order/purchase_order_detail.html:270
+#: order/templates/order/sales_order_detail.html:319
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:145
+#: order/templates/order/so_navbar.html:36 part/models.py:865
+#: part/templates/part/navbar.html:133
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
+#: stock/forms.py:140 stock/forms.py:284 stock/forms.py:316 stock/forms.py:344
+#: stock/models.py:536 stock/models.py:1678 stock/models.py:1784
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:713
msgid "Notes"
msgstr "Notes"
-#: build/models.py:263
+#: build/models.py:267
msgid "Extra build notes"
msgstr ""
-#: build/models.py:740
+#: build/models.py:744
msgid "No build output specified"
msgstr ""
-#: build/models.py:743
+#: build/models.py:747
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:746
+#: build/models.py:750
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1152
+#: build/models.py:1160
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1177
+#: build/models.py:1185
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable"
-#: build/models.py:1181
+#: build/models.py:1189
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:809
+#: build/models.py:1196 order/models.py:915
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:812
+#: build/models.py:1200 order/models.py:918
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1204
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1264
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "L'article en stock sélectionné n'a pas été trouvé dans la BOM pour la pièce '{p}'"
-#: build/models.py:1316 stock/templates/stock/item_base.html:317
+#: build/models.py:1324 stock/templates/stock/item_base.html:317
#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1317
+#: build/models.py:1325
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1333 stock/templates/stock/item_base.html:8
+#: build/models.py:1341 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
#: templates/js/build.js:211 templates/js/build.js:929
-#: templates/js/order.js:366 templates/js/order.js:371
-#: templates/js/stock.js:1115
+#: templates/js/order.js:433 templates/js/order.js:438
+#: templates/js/stock.js:1129
msgid "Stock Item"
msgstr ""
-#: build/models.py:1334
+#: build/models.py:1342
msgid "Source stock item"
msgstr ""
-#: build/models.py:1347
+#: build/models.py:1355
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1355
+#: build/models.py:1363
msgid "Install into"
msgstr ""
-#: build/models.py:1356
+#: build/models.py:1364
msgid "Destination stock item"
msgstr ""
@@ -893,7 +899,7 @@ msgstr "Commander les pièces requises"
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:724
#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr "Commander des pièces"
@@ -912,23 +918,52 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:160
+#: order/templates/order/sales_order_detail.html:85
+#: order/templates/order/sales_order_detail.html:170
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:450 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:570
+#: stock/models.py:458 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570 templates/js/model_renderers.js:41
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
-#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:124
+#: part/templates/part/navbar.html:127 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr "Pieces jointes"
+#: build/templates/build/attachments.html:51
+#: order/templates/order/so_attachments.html:79
+#: part/templates/part/attachments.html:81
+#: stock/templates/stock/item_attachments.html:81
+#: templates/attachment_table.html:6
+msgid "Add Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:69
+#: order/templates/order/so_attachments.html:52
+#: part/templates/part/attachments.html:35
+#: stock/templates/stock/item_attachments.html:49
+msgid "Edit Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:76
+#: order/templates/order/so_attachments.html:58
+#: part/templates/part/attachments.html:44
+#: stock/templates/stock/item_attachments.html:58
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/attachments.html:77
+#: order/templates/order/so_attachments.html:59
+#: part/templates/part/attachments.html:45
+#: stock/templates/stock/item_attachments.html:59
+msgid "Delete Attachment"
+msgstr ""
+
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
msgstr ""
@@ -989,8 +1024,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
#: order/templates/order/sales_order_base.html:88
-#: templates/js/table_filters.js:245 templates/js/table_filters.js:264
-#: templates/js/table_filters.js:281
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:269
+#: templates/js/table_filters.js:286
msgid "Overdue"
msgstr ""
@@ -1036,13 +1071,13 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:710
+#: build/templates/build/detail.html:84 order/models.py:812
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:279 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:279 templates/js/order.js:307
msgid "Sales Order"
msgstr ""
@@ -1183,10 +1218,10 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
-#: order/templates/order/purchase_order_detail.html:239
-#: order/templates/order/receive_parts.html:25 stock/forms.py:169
-#: stock/forms.py:375
+#: build/templates/build/detail.html:46 order/forms.py:88 order/models.py:771
+#: order/templates/order/purchase_order_detail.html:266
+#: order/templates/order/receive_parts.html:25 stock/forms.py:136
+#: stock/forms.py:342
msgid "Destination"
msgstr ""
@@ -1196,7 +1231,7 @@ msgstr ""
#: build/templates/build/detail.html:70
#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638
-#: templates/js/stock.js:1406 templates/js/table_filters.js:112
+#: templates/js/stock.js:1420 templates/js/table_filters.js:112
#: templates/js/table_filters.js:206
msgid "Batch"
msgstr ""
@@ -1251,7 +1286,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
-#: templates/js/stock.js:1044
+#: templates/js/stock.js:1058
msgid "Details"
msgstr "Détails"
@@ -1287,7 +1322,6 @@ msgstr ""
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487
-#: stock/templates/stock/item_base.html:497
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr "Enregistrer"
@@ -1316,7 +1350,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/views.py:1821
+#: build/views.py:184 stock/views.py:1653
msgid "Serial numbers already exist"
msgstr ""
@@ -1332,7 +1366,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:281 build/views.py:371 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:346
msgid "Check the confirmation box"
msgstr ""
@@ -1429,31 +1463,6 @@ msgstr ""
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1070
-msgid "Add Build Order Attachment"
-msgstr ""
-
-#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
-#: stock/views.py:277
-msgid "Added attachment"
-msgstr "Pièce jointe ajoutée"
-
-#: build/views.py:1119 order/views.py:196 order/views.py:217
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/views.py:1129 order/views.py:200 order/views.py:221
-msgid "Attachment updated"
-msgstr ""
-
-#: build/views.py:1139 order/views.py:236 order/views.py:250
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
-msgid "Deleted attachment"
-msgstr ""
-
#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1470,7 +1479,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/attachment_table.html:15
+#: common/forms.py:34 templates/js/attachment.js:42
msgid "File"
msgstr ""
@@ -1503,7 +1512,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:72 company/models.py:94 company/models.py:95
+#: common/models.py:72 company/models.py:99 company/models.py:100
msgid "Company name"
msgstr ""
@@ -1607,9 +1616,9 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
-#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
-#: templates/js/table_filters.js:315
+#: common/models.py:160 part/models.py:2226 part/templates/part/detail.html:160
+#: report/models.py:186 stock/forms.py:226 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:320
msgid "Template"
msgstr ""
@@ -1617,8 +1626,8 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
+#: common/models.py:167 part/models.py:828 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:128 templates/js/table_filters.js:332
msgid "Assembly"
msgstr ""
@@ -1626,8 +1635,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:331
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:336
msgid "Component"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:845 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
@@ -1643,8 +1652,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:339
+#: common/models.py:188 part/models.py:850 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:344
msgid "Salable"
msgstr ""
@@ -1652,8 +1661,8 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
+#: common/models.py:195 part/models.py:840 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:348
msgid "Trackable"
msgstr ""
@@ -1661,7 +1670,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:860 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -1858,13 +1867,12 @@ msgstr ""
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:742 company/forms.py:190
+#: common/models.py:742 company/forms.py:125
msgid "Price break quantity"
msgstr ""
-#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
-#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
+#: templates/js/part.js:832
msgid "Price"
msgstr ""
@@ -1894,16 +1902,16 @@ msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:605
+#: order/templates/order/po_navbar.html:22 order/views.py:337
#: part/templates/part/bom_upload/upload_file.html:27
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:621
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:338 part/templates/part/bom_upload/select_fields.html:58
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr ""
@@ -1928,269 +1936,277 @@ msgstr ""
msgid "Previous Step"
msgstr ""
-#: company/forms.py:37 company/models.py:142
-#: company/templates/company/detail.html:42
-msgid "Currency"
-msgstr ""
-
-#: company/forms.py:38 company/models.py:144
-msgid "Default currency used for this company"
-msgstr ""
-
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:26 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:27 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:132 templates/js/part.js:787
+#: company/forms.py:67 templates/js/part.js:940
msgid "Single Price"
msgstr ""
-#: company/forms.py:133
+#: company/forms.py:68
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:141 company/models.py:321
+#: company/forms.py:76 company/models.py:335
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:147 company/models.py:328
+#: company/forms.py:82 company/models.py:342
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:149 company/models.py:327
+#: company/forms.py:84 company/models.py:341
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:162 part/bom.py:171
-#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408
+#: order/templates/order/purchase_order_detail.html:189 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:305 templates/js/company.js:533
msgid "MPN"
msgstr ""
-#: company/models.py:99
+#: company/models.py:104
msgid "Company description"
msgstr ""
-#: company/models.py:100
+#: company/models.py:105
msgid "Description of the company"
msgstr ""
-#: company/models.py:104 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:33 templates/js/company.js:60
+#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:129
msgid "Website"
msgstr ""
-#: company/models.py:104
+#: company/models.py:112
msgid "Company website URL"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:77
+#: company/models.py:116 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:108
+#: company/models.py:117
msgid "Company address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:120
msgid "Phone number"
msgstr ""
-#: company/models.py:112
+#: company/models.py:121
msgid "Contact phone number"
msgstr ""
-#: company/models.py:115 company/templates/company/company_base.html:91
+#: company/models.py:124 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:115
+#: company/models.py:124
msgid "Contact email address"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:98
+#: company/models.py:127 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:119
+#: company/models.py:128
msgid "Point of contact"
msgstr ""
-#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:102 part/models.py:728
+#: company/models.py:130 company/models.py:347 company/models.py:548
+#: order/models.py:156 part/models.py:737
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/company.js:188 templates/js/company.js:419
+#: templates/js/company.js:312 templates/js/company.js:544
#: templates/js/part.js:498
msgid "Link"
msgstr ""
-#: company/models.py:121
+#: company/models.py:130
msgid "Link to external company information"
msgstr ""
-#: company/models.py:129 part/models.py:738
+#: company/models.py:138 part/models.py:747
msgid "Image"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "is customer"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "is supplier"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "is manufacturer"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:403
+#: company/models.py:151 company/serializers.py:259
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:154
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:319 company/models.py:519 stock/models.py:411
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1603
+#: company/models.py:323 company/models.py:523 order/views.py:1127
msgid "Select part"
msgstr ""
-#: company/models.py:320 company/templates/company/detail.html:57
+#: company/models.py:334 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
#: part/bom.py:241 stock/templates/stock/item_base.html:352
-#: templates/js/company.js:44 templates/js/company.js:165
-#: templates/js/company.js:390
+#: templates/js/company.js:113 templates/js/company.js:289
+#: templates/js/company.js:515
msgid "Manufacturer"
msgstr ""
-#: company/models.py:334
+#: company/models.py:348
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:340
+#: company/models.py:354
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:390 company/models.py:520
+#: company/models.py:408 company/models.py:542
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:362
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:397
+#: company/models.py:415
msgid "Parameter name"
msgstr ""
-#: company/models.py:403 part/templates/part/params.html:28
+#: company/models.py:421 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
-#: templates/js/company.js:241 templates/js/stock.js:137
+#: stock/models.py:1771 templates/InvenTree/settings/header.html:8
+#: templates/js/company.js:365 templates/js/stock.js:137
msgid "Value"
msgstr ""
-#: company/models.py:404
+#: company/models.py:422
msgid "Parameter value"
msgstr ""
-#: company/models.py:410 part/models.py:813 part/models.py:2165
+#: company/models.py:428 part/models.py:822 part/models.py:2194
#: part/templates/part/detail.html:106 part/templates/part/params.html:29
-#: templates/js/company.js:247
+#: templates/js/company.js:371
msgid "Units"
msgstr ""
-#: company/models.py:411
+#: company/models.py:429
msgid "Parameter units"
msgstr ""
-#: company/models.py:507 company/templates/company/detail.html:62
+#: company/models.py:529 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:256
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
-#: templates/js/company.js:48 templates/js/company.js:364
-#: templates/js/order.js:170
+#: templates/js/company.js:117 templates/js/company.js:489
+#: templates/js/order.js:232
msgid "Supplier"
msgstr ""
-#: company/models.py:508
+#: company/models.py:530
msgid "Select supplier"
msgstr ""
-#: company/models.py:513 company/templates/company/supplier_part_base.html:88
+#: company/models.py:535 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:153 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:180 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:514
+#: company/models.py:536
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:521
+#: company/models.py:543
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:527
+#: company/models.py:549
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:533
+#: company/models.py:555
msgid "Supplier part description"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part_base.html:116
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305
+#: company/models.py:560 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2342
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "base cost"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:427 stock/templates/stock/item_base.html:310
-#: templates/js/stock.js:695
+#: company/models.py:566 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:435 stock/templates/stock/item_base.html:310
+#: templates/js/stock.js:709
msgid "Packaging"
msgstr ""
-#: company/models.py:544
+#: company/models.py:566
msgid "Part packaging"
msgstr ""
-#: company/models.py:546 part/models.py:1608
+#: company/models.py:568 part/models.py:1617
msgid "multiple"
msgstr ""
-#: company/models.py:546
+#: company/models.py:568
msgid "Order multiple"
msgstr ""
+#: company/serializers.py:68
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:69
+msgid "Currency Code"
+msgstr ""
+
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
#: company/templates/company/navbar.html:65 templates/js/build.js:563
@@ -2199,7 +2215,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:102
msgid "Company"
msgstr ""
@@ -2213,7 +2229,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:313
+#: company/templates/company/company_base.html:46 templates/js/order.js:61
msgid "Create Purchase Order"
msgstr ""
@@ -2221,7 +2237,8 @@ msgstr ""
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56 company/views.py:326
+#: company/templates/company/company_base.html:56
+#: company/templates/company/company_base.html:126
msgid "Delete Company"
msgstr ""
@@ -2235,15 +2252,9 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/delete.html:7
-#, python-format
-msgid "Are you sure you want to delete company '%(name)s'?"
-msgstr ""
-
-#: company/templates/company/delete.html:12
-#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be deleted."
+#: company/templates/company/company_base.html:166
+#: part/templates/part/part_base.html:307
+msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:21
@@ -2258,11 +2269,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:460
-#: order/templates/order/sales_order_base.html:94 stock/models.py:445
-#: stock/models.py:446 stock/templates/stock/item_base.html:262
-#: templates/js/company.js:40 templates/js/order.js:267
-#: templates/js/stock.js:1097
+#: company/templates/company/detail.html:67 order/models.py:540
+#: order/templates/order/sales_order_base.html:94 stock/models.py:453
+#: stock/models.py:454 stock/templates/stock/item_base.html:262
+#: templates/js/company.js:109 templates/js/order.js:329
+#: templates/js/stock.js:1111
msgid "Customer"
msgstr ""
@@ -2283,6 +2294,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
+#: company/templates/company/manufacturer_part_suppliers.html:46
#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
@@ -2305,26 +2317,25 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:68
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:127
-#: templates/js/stock.js:1312
+#: templates/js/stock.js:1326
msgid "New Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:69
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:72
-#: company/views.py:71 part/templates/part/manufacturer.html:52
-#: part/templates/part/supplier.html:56
+#: company/templates/company/detail_manufacturer_part.html:74
+#: company/views.py:66 part/templates/part/manufacturer.html:52
+#: part/templates/part/supplier.html:55
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:73
-#: company/views.py:284
+#: company/templates/company/detail_manufacturer_part.html:75
msgid "Create new Manufacturer"
msgstr ""
@@ -2335,7 +2346,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:123 part/templates/part/category.html:137
-#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
+#: part/templates/part/stock.html:55 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2347,26 +2358,24 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:44
-#: order/templates/order/purchase_order_detail.html:50
+#: part/templates/part/part_base.html:429
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1318
+#: part/templates/part/part_base.html:428 part/templates/part/supplier.html:17
+#: templates/js/stock.js:1332
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
-#: company/templates/company/manufacturer_part_suppliers.html:82
-#: company/views.py:64 order/templates/order/purchase_orders.html:185
-#: part/templates/part/supplier.html:50
+#: company/templates/company/manufacturer_part_suppliers.html:96
+#: company/views.py:60 part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
-#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:186
+#: company/templates/company/detail_supplier_part.html:73
msgid "Create new Supplier"
msgstr ""
@@ -2401,20 +2410,19 @@ msgstr ""
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:6
-msgid "Are you sure you want to delete the following Manufacturer Parts?"
+#: company/templates/company/manufacturer_part_base.html:125
+msgid "Edit Manufacturer Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:36
-#, python-format
-msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
+#: company/templates/company/manufacturer_part_base.html:134
+msgid "Delete Manufacturer Part"
msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:87
-#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
-#: templates/navbar.html:35
+#: company/views.py:59 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 part/templates/part/prices.html:153
+#: templates/InvenTree/search.html:316 templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2425,7 +2433,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:39 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:53
#: 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:128 templates/InvenTree/search.html:196
@@ -2451,9 +2459,11 @@ msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: company/templates/company/manufacturer_part_suppliers.html:142
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:191
+#: stock/views.py:855 templates/js/company.js:203 users/models.py:192
msgid "Delete"
msgstr ""
@@ -2471,11 +2481,27 @@ msgstr ""
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part_suppliers.html:83
+#: company/templates/company/manufacturer_part_suppliers.html:48
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:80
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:97
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
msgstr ""
+#: company/templates/company/manufacturer_part_suppliers.html:127
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:139
+msgid "Delete Parameters"
+msgstr ""
+
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
msgid "Manufactured Parts"
@@ -2492,8 +2518,8 @@ msgstr ""
#: stock/templates/stock/location.html:136
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
-#: templates/InvenTree/search.html:198 templates/js/stock.js:996
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2503,11 +2529,11 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: part/templates/part/navbar.html:101 part/templates/part/navbar.html:104
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:236
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
-#: users/models.py:45
+#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2516,10 +2542,10 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:213
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
-#: users/models.py:44
+#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2548,8 +2574,9 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
-#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:420
+#: stock/templates/stock/item_base.html:374 templates/js/company.js:505
+#: templates/js/stock.js:690
msgid "Supplier Part"
msgstr ""
@@ -2594,459 +2621,401 @@ msgid "Order Part"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:11
+#: part/templates/part/navbar.html:74
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2918
+#: company/templates/company/supplier_part_pricing.html:19
+#: company/templates/company/supplier_part_pricing.html:118
+#: part/templates/part/prices.html:264 part/views.py:2788
msgid "Add Price Break"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:38
-#: part/templates/part/sale_prices.html:46
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:89
-#: part/templates/part/sale_prices.html:97
+#: company/templates/company/supplier_part_pricing.html:52 part/views.py:2850
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:66 part/views.py:2836
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:91
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:90
-#: part/templates/part/sale_prices.html:98
+#: company/templates/company/supplier_part_pricing.html:92
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:81
-#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
-#: templates/navbar.html:36
+#: company/views.py:65 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 part/templates/part/prices.html:157
+#: templates/InvenTree/search.html:306 templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
-#: company/views.py:77 templates/InvenTree/search.html:336
+#: company/views.py:71 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:187
+#: company/views.py:72
msgid "New Customer"
msgstr ""
-#: company/views.py:86
+#: company/views.py:79
msgid "Companies"
msgstr ""
-#: company/views.py:87
+#: company/views.py:80
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:1115
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:1147
+#: company/views.py:190 part/views.py:1039
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:1154
+#: company/views.py:197 part/views.py:1046
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:1163
+#: company/views.py:206 part/views.py:1055
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: company/views.py:243
-msgid "Update Company Image"
-msgstr ""
-
-#: company/views.py:249
-msgid "Updated company image"
-msgstr ""
-
-#: company/views.py:259
-msgid "Edit Company"
-msgstr ""
-
-#: company/views.py:264
-msgid "Edited company information"
-msgstr ""
-
-#: company/views.py:287 order/templates/order/sales_orders.html:188
-msgid "Create new Customer"
-msgstr ""
-
-#: company/views.py:289
-msgid "Create new Company"
-msgstr ""
-
-#: company/views.py:316
-msgid "Created new company"
-msgstr ""
-
-#: company/views.py:332
-msgid "Company was deleted"
-msgstr ""
-
-#: company/views.py:357
-msgid "Edit Manufacturer Part"
-msgstr ""
-
-#: company/views.py:366
+#: company/views.py:251
msgid "Create New Manufacturer Part"
msgstr ""
-#: company/views.py:440
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: company/views.py:514
-msgid "Add Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:548
-msgid "Edit Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:588
+#: company/views.py:334
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:639 templates/js/stock.js:1319
+#: company/views.py:385 templates/js/stock.js:1333
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:783
+#: company/views.py:529
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2922
-msgid "Added new price break"
-msgstr ""
-
-#: company/views.py:916 part/views.py:2966
-msgid "Edit Price Break"
-msgstr ""
-
-#: company/views.py:931 part/views.py:2980
-msgid "Delete Price Break"
-msgstr ""
-
#: label/api.py:56 report/api.py:201
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:103
+#: label/models.py:104
msgid "Label name"
msgstr ""
-#: label/models.py:110
+#: label/models.py:111
msgid "Label description"
msgstr ""
-#: label/models.py:117 stock/forms.py:202
+#: label/models.py:118 stock/forms.py:169
msgid "Label"
msgstr ""
-#: label/models.py:118
+#: label/models.py:119
msgid "Label template file"
msgstr ""
-#: label/models.py:124 report/models.py:297
+#: label/models.py:125 report/models.py:297
msgid "Enabled"
msgstr ""
-#: label/models.py:125
+#: label/models.py:126
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Width [mm]"
msgstr ""
-#: label/models.py:131
+#: label/models.py:132
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Height [mm]"
msgstr ""
-#: label/models.py:138
+#: label/models.py:139
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:144 report/models.py:290
+#: label/models.py:145 report/models.py:290
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:145
+#: label/models.py:146
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:244 label/models.py:297
+#: label/models.py:249 label/models.py:306
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:245 label/models.py:298 report/models.py:317
+#: label/models.py:250 label/models.py:307 report/models.py:317
#: report/models.py:440 report/models.py:474
msgid "Filters"
msgstr ""
-#: order/forms.py:31 order/templates/order/order_base.html:47
+#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:42 order/templates/order/order_base.html:54
+#: order/forms.py:41 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
+#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:75 order/templates/order/sales_order_base.html:58
+#: order/forms.py:74 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:90
+#: order/forms.py:89
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:112
-msgid "Purchase Order reference"
-msgstr ""
-
-#: order/forms.py:119
-msgid "Target date for order delivery. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:147
-msgid "Enter sales order number"
-msgstr ""
-
-#: order/forms.py:154 order/models.py:472
-msgid "Target date for order completion. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:246
+#: order/forms.py:116
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:252
+#: order/forms.py:122
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:98
-msgid "Order reference"
-msgstr ""
-
-#: order/models.py:100
+#: order/models.py:154
msgid "Order description"
msgstr ""
-#: order/models.py:102
+#: order/models.py:156
msgid "Link to external page"
msgstr ""
-#: order/models.py:110 part/templates/part/detail.html:132
+#: order/models.py:164 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:117
+#: order/models.py:171
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:176
msgid "Order notes"
msgstr ""
-#: order/models.py:181 order/models.py:465
+#: order/models.py:243 order/models.py:530
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:248 order/models.py:545
msgid "Purchase order status"
msgstr ""
-#: order/models.py:190
+#: order/models.py:257
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:193 order/templates/order/order_base.html:98
-#: templates/js/order.js:179
+#: order/models.py:260 order/templates/order/order_base.html:98
+#: templates/js/order.js:241
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:193
+#: order/models.py:260
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:200
+#: order/models.py:267
msgid "received by"
msgstr ""
-#: order/models.py:205
+#: order/models.py:272
msgid "Issue Date"
msgstr ""
-#: order/models.py:206
+#: order/models.py:273
msgid "Date order was issued"
msgstr ""
-#: order/models.py:211
+#: order/models.py:278
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:212
+#: order/models.py:279
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:218
+#: order/models.py:285
msgid "Date order was completed"
msgstr ""
-#: order/models.py:242 part/views.py:1853 stock/models.py:300
-#: stock/models.py:1015
+#: order/models.py:309 part/views.py:1730 stock/models.py:308
+#: stock/models.py:1023
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:247
+#: order/models.py:314
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:345
+#: order/models.py:412
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:349
+#: order/models.py:416
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:351
+#: order/models.py:418
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:461
+#: order/models.py:541
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer Reference "
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:475 templates/js/order.js:303
+#: order/models.py:552
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:555 templates/js/order.js:370
msgid "Shipment Date"
msgstr ""
-#: order/models.py:482
+#: order/models.py:562
msgid "shipped by"
msgstr ""
-#: order/models.py:526
+#: order/models.py:606
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:613
+#: order/models.py:703
msgid "Item quantity"
msgstr ""
-#: order/models.py:615
+#: order/models.py:709
msgid "Line item reference"
msgstr ""
-#: order/models.py:617
+#: order/models.py:711
msgid "Line item notes"
msgstr ""
-#: order/models.py:643 order/models.py:710 templates/js/order.js:353
+#: order/models.py:741 order/models.py:812 templates/js/order.js:420
msgid "Order"
msgstr ""
-#: order/models.py:644 order/templates/order/order_base.html:9
+#: order/models.py:742 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
-#: templates/js/stock.js:669 templates/js/stock.js:1078
+#: stock/templates/stock/item_base.html:324 templates/js/order.js:210
+#: templates/js/stock.js:669 templates/js/stock.js:1092
msgid "Purchase Order"
msgstr ""
-#: order/models.py:658
+#: order/models.py:756
msgid "Supplier part"
msgstr ""
-#: order/models.py:661 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:219
+#: order/models.py:759 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:246
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:661
+#: order/models.py:759
msgid "Number of items received"
msgstr ""
-#: order/models.py:667 stock/models.py:537
-#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
+#: order/models.py:765 part/templates/part/prices.html:166 stock/models.py:545
+#: stock/templates/stock/item_base.html:331 templates/js/stock.js:704
msgid "Purchase Price"
msgstr ""
-#: order/models.py:668
+#: order/models.py:766
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:676
+#: order/models.py:774
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:718 part/templates/part/navbar.html:110
-#: part/templates/part/order_prices.html:108
-#: part/templates/part/part_pricing.html:97
+#: order/models.py:820 part/templates/part/part_pricing.html:97
+#: part/templates/part/prices.html:103 part/templates/part/prices.html:278
msgid "Sale Price"
msgstr ""
-#: order/models.py:719
+#: order/models.py:821
msgid "Unit sale price"
msgstr ""
-#: order/models.py:794 order/models.py:796
+#: order/models.py:900 order/models.py:902
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:800
+#: order/models.py:906
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:802
+#: order/models.py:908
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:805
+#: order/models.py:911
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:815
+#: order/models.py:921
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:820
+#: order/models.py:926
msgid "Line"
msgstr ""
-#: order/models.py:831
+#: order/models.py:937
msgid "Item"
msgstr ""
-#: order/models.py:832
+#: order/models.py:938
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:835
+#: order/models.py:941
msgid "Enter stock allocation quantity"
msgstr ""
+#: order/serializers.py:139
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Sale price currency"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
#: templates/attachment_delete.html:5
@@ -3091,16 +3060,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:180
-#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/order_base.html:188
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:199
+#: order/templates/order/purchase_order_detail.html:127
#: part/templates/part/category.html:217 part/templates/part/category.html:259
-#: stock/templates/stock/location.html:191 templates/js/stock.js:736
-#: templates/js/stock.js:1324
+#: part/templates/part/part_base.html:415
+#: stock/templates/stock/location.html:191 templates/js/stock.js:750
+#: templates/js/stock.js:1338
msgid "New Location"
msgstr ""
-#: order/templates/order/order_base.html:181
-#: order/templates/order/purchase_order_detail.html:101
+#: order/templates/order/order_base.html:200
+#: order/templates/order/purchase_order_detail.html:128
+#: part/templates/part/part_base.html:416
#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3253,7 +3228,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.js:205 templates/js/order.js:308
+#: templates/js/order.js:267 templates/js/order.js:375
msgid "Items"
msgstr ""
@@ -3277,7 +3252,6 @@ msgid "Purchase Order Attachments"
msgstr ""
#: order/templates/order/po_lineitem_delete.html:5
-#: order/templates/order/so_lineitem_delete.html:5
msgid "Are you sure you wish to delete this line item?"
msgstr ""
@@ -3295,40 +3269,52 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
-#: order/views.py:1410
+#: order/templates/order/purchase_order_detail.html:64
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:56
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:114
+#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/sales_order_detail.html:398
+msgid "Edit Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:110
+#: order/templates/order/sales_order_detail.html:408
+msgid "Delete Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:141
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/purchase_order_detail.html:169
+#: order/templates/order/sales_order_detail.html:233
msgid "Total"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:191
-#: order/templates/order/sales_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:218
+#: order/templates/order/sales_order_detail.html:256 templates/js/part.js:807
+#: templates/js/part.js:996
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:198
-#: order/templates/order/sales_order_detail.html:253
+#: order/templates/order/purchase_order_detail.html:225
+#: order/templates/order/sales_order_detail.html:263
msgid "Total price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:255
-#: order/templates/order/sales_order_detail.html:359
+#: order/templates/order/purchase_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:369
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:256
+#: order/templates/order/purchase_order_detail.html:283
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:261
+#: order/templates/order/purchase_order_detail.html:288
msgid "Receive line item"
msgstr ""
@@ -3343,7 +3329,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
-#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/models.py:326 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:157
#: part/templates/part/category_navbar.html:25
#: part/templates/part/category_navbar.html:32
@@ -3351,7 +3337,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:40
+#: users/models.py:41
msgid "Parts"
msgstr ""
@@ -3393,10 +3379,14 @@ msgstr ""
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100 templates/js/order.js:275
+#: order/templates/order/sales_order_base.html:100 templates/js/order.js:342
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_base.html:177
+msgid "Edit Sales Order"
+msgstr ""
+
#: order/templates/order/sales_order_cancel.html:8
#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
@@ -3412,69 +3402,69 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: order/templates/order/sales_order_detail.html:105 templates/js/bom.js:358
#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: order/templates/order/sales_order_detail.html:112 templates/js/build.js:611
#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: order/templates/order/sales_order_detail.html:113 templates/js/build.js:613
#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:176
+#: order/templates/order/sales_order_detail.html:186
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:216
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: order/templates/order/sales_order_detail.html:284 templates/js/build.js:676
#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:276
+#: order/templates/order/sales_order_detail.html:286
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:313
+#: order/templates/order/sales_order_detail.html:323
msgid "PO"
msgstr ""
-#: order/templates/order/sales_order_detail.html:343
+#: order/templates/order/sales_order_detail.html:353
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
+#: order/templates/order/sales_order_detail.html:356 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:349
+#: order/templates/order/sales_order_detail.html:359
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: order/templates/order/sales_order_detail.html:363 templates/js/build.js:732
#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:356
-#: order/templates/order/sales_order_detail.html:465
+#: order/templates/order/sales_order_detail.html:366
+#: order/templates/order/sales_order_detail.html:485
msgid "Calculate price"
msgstr ""
-#: order/templates/order/sales_order_detail.html:360
+#: order/templates/order/sales_order_detail.html:370
msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:471
+#: order/templates/order/sales_order_detail.html:491
msgid "Update Unit Price"
msgstr ""
@@ -3515,194 +3505,154 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:106
-msgid "Add Purchase Order Attachment"
-msgstr ""
-
-#: order/views.py:156
-msgid "Add Sales Order Attachment"
-msgstr ""
-
-#: order/views.py:348
-msgid "Create Sales Order"
-msgstr ""
-
-#: order/views.py:383
-msgid "Edit Purchase Order"
-msgstr ""
-
-#: order/views.py:403
-msgid "Edit Sales Order"
-msgstr ""
-
-#: order/views.py:419
+#: order/views.py:151
msgid "Cancel Order"
msgstr ""
-#: order/views.py:428 order/views.py:454
+#: order/views.py:160 order/views.py:186
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:431 order/views.py:457
+#: order/views.py:163 order/views.py:189
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:445
+#: order/views.py:177
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:471
+#: order/views.py:203
msgid "Issue Order"
msgstr ""
-#: order/views.py:480
+#: order/views.py:212
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:490
+#: order/views.py:222
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:501
+#: order/views.py:233
msgid "Complete Order"
msgstr ""
-#: order/views.py:517
+#: order/views.py:249
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:528
+#: order/views.py:260
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:538
+#: order/views.py:270
msgid "Ship Order"
msgstr ""
-#: order/views.py:554
+#: order/views.py:286
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:560
+#: order/views.py:292
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:339
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:804
+#: order/views.py:536
msgid "Receive Parts"
msgstr ""
-#: order/views.py:874
+#: order/views.py:606
msgid "Items received"
msgstr ""
-#: order/views.py:888
+#: order/views.py:620
msgid "No destination set"
msgstr ""
-#: order/views.py:933
+#: order/views.py:665
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:939
+#: order/views.py:671
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:945
+#: order/views.py:677
msgid "No lines specified"
msgstr ""
-#: order/views.py:1018
+#: order/views.py:750
msgid "Update prices"
msgstr ""
-#: order/views.py:1276
+#: order/views.py:1008
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1336
-msgid "Supplier part must be specified"
-msgstr ""
-
-#: order/views.py:1342
-msgid "Supplier must match for Part and Order"
-msgstr ""
-
-#: order/views.py:1473 order/views.py:1491
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/views.py:1507 order/views.py:1519
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/views.py:1512 order/views.py:1524
-msgid "Deleted line item"
-msgstr ""
-
-#: order/views.py:1537
+#: order/views.py:1061
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1582
+#: order/views.py:1106
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1598
+#: order/views.py:1122
msgid "Select line item"
msgstr ""
-#: order/views.py:1629
+#: order/views.py:1153
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1639
+#: order/views.py:1163
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1647
+#: order/views.py:1171
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1701
+#: order/views.py:1225
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1775
+#: order/views.py:1299
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1790
+#: order/views.py:1314
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1386
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1868
+#: order/views.py:1392
msgid "Price not found"
msgstr ""
-#: order/views.py:1871
+#: order/views.py:1395
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1876
+#: order/views.py:1400
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:138 part/models.py:72 part/models.py:747
+#: part/bom.py:138 part/models.py:72 part/models.py:756
#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3724,143 +3674,143 @@ msgstr ""
msgid "Error reading BOM file (incorrect row size)"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "File Format"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "Select output file format"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Cascading"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Download cascading / multi-level BOM"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Levels"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Select maximum number of BOM levels to export (0 = all levels)"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include Parameter Data"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include part parameters data in exported BOM"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include Stock Data"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include part stock data in exported BOM"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include Manufacturer Data"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include part manufacturer data in exported BOM"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include Supplier Data"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2191
+#: part/forms.py:106 part/models.py:2224
msgid "Parent Part"
msgstr ""
-#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:107 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr ""
-#: part/forms.py:129
+#: part/forms.py:113
msgid "Clear existing BOM items"
msgstr ""
-#: part/forms.py:135
+#: part/forms.py:119
msgid "Confirm BOM duplication"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "validate"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "BOM file"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "Select BOM file to upload"
msgstr ""
-#: part/forms.py:184
+#: part/forms.py:168
msgid "Related Part"
msgstr ""
-#: part/forms.py:203
+#: part/forms.py:175
msgid "Select part category"
msgstr ""
-#: part/forms.py:220
+#: part/forms.py:192
msgid "Duplicate all BOM data for this part"
msgstr ""
-#: part/forms.py:221
+#: part/forms.py:193
msgid "Copy BOM"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:198
msgid "Duplicate all parameter data for this part"
msgstr ""
-#: part/forms.py:227
+#: part/forms.py:199
msgid "Copy Parameters"
msgstr ""
-#: part/forms.py:232
+#: part/forms.py:204
msgid "Confirm part creation"
msgstr ""
-#: part/forms.py:237
+#: part/forms.py:209
msgid "Include category parameter templates"
msgstr ""
-#: part/forms.py:242
+#: part/forms.py:214
msgid "Include parent categories parameter templates"
msgstr ""
-#: part/forms.py:322
+#: part/forms.py:294
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:298
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2286
+#: part/forms.py:316 part/models.py:2323
msgid "Sub part"
msgstr ""
-#: part/forms.py:373
+#: part/forms.py:345
msgid "Input quantity for price calculation"
msgstr ""
@@ -3876,362 +3826,362 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2237
+#: part/models.py:86 part/models.py:2270
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:32
+#: part/models.py:87 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:39
+#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:448 part/models.py:460
+#: part/models.py:457 part/models.py:469
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:557
+#: part/models.py:566
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:561
+#: part/models.py:570
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:566
+#: part/models.py:575
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:645
+#: part/models.py:654
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:670 part/templates/part/detail.html:22
+#: part/models.py:679 part/templates/part/detail.html:22
msgid "Part name"
msgstr ""
-#: part/models.py:677
+#: part/models.py:686
msgid "Is Template"
msgstr ""
-#: part/models.py:678
+#: part/models.py:687
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:689
+#: part/models.py:698
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:690 part/templates/part/detail.html:60
+#: part/models.py:699 part/templates/part/detail.html:60
msgid "Variant Of"
msgstr ""
-#: part/models.py:696
+#: part/models.py:705
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:82
+#: part/models.py:710 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
-#: part/models.py:702
+#: part/models.py:711
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73
+#: part/models.py:718 part/models.py:2269 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:452
msgid "Category"
msgstr ""
-#: part/models.py:710
+#: part/models.py:719
msgid "Part category"
msgstr ""
-#: part/models.py:715 part/templates/part/detail.html:28
+#: part/models.py:724 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:87 templates/js/part.js:169
#: templates/js/part.js:296
msgid "IPN"
msgstr "IPN"
-#: part/models.py:716
+#: part/models.py:725
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:722
+#: part/models.py:731
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199
+#: part/models.py:732 part/templates/part/detail.html:35 report/models.py:199
#: templates/js/part.js:173
msgid "Revision"
msgstr ""
-#: part/models.py:745
+#: part/models.py:754
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:792 part/templates/part/detail.html:97
+#: part/models.py:801 part/templates/part/detail.html:97
msgid "Default Supplier"
msgstr ""
-#: part/models.py:793
+#: part/models.py:802
msgid "Default supplier part"
msgstr ""
-#: part/models.py:800
+#: part/models.py:809
msgid "Default Expiry"
msgstr ""
-#: part/models.py:801
+#: part/models.py:810
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:806 part/templates/part/detail.html:113
+#: part/models.py:815 part/templates/part/detail.html:113
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:807
+#: part/models.py:816
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:814
+#: part/models.py:823
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:820
+#: part/models.py:829
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:835
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:832
+#: part/models.py:841
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:837
+#: part/models.py:846
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:842
+#: part/models.py:851
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:846 part/templates/part/detail.html:227
+#: part/models.py:855 part/templates/part/detail.html:227
#: templates/js/table_filters.js:21 templates/js/table_filters.js:65
-#: templates/js/table_filters.js:241 templates/js/table_filters.js:310
+#: templates/js/table_filters.js:246 templates/js/table_filters.js:315
msgid "Active"
msgstr ""
-#: part/models.py:847
+#: part/models.py:856
msgid "Is this part active?"
msgstr ""
-#: part/models.py:852
+#: part/models.py:861
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:857
+#: part/models.py:866
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "BOM checksum"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:863
+#: part/models.py:872
msgid "BOM checked by"
msgstr ""
-#: part/models.py:865
+#: part/models.py:874
msgid "BOM checked date"
msgstr ""
-#: part/models.py:869
+#: part/models.py:878
msgid "Creation User"
msgstr ""
-#: part/models.py:1608
+#: part/models.py:1617
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2063
+#: part/models.py:2088
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2080
+#: part/models.py:2105
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117
+#: part/models.py:2125 templates/js/part.js:717 templates/js/stock.js:117
msgid "Test Name"
msgstr ""
-#: part/models.py:2101
+#: part/models.py:2126
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2106
+#: part/models.py:2131
msgid "Test Description"
msgstr ""
-#: part/models.py:2107
+#: part/models.py:2132
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2112 templates/js/part.js:726
-#: templates/js/table_filters.js:227
+#: part/models.py:2137 templates/js/part.js:726
+#: templates/js/table_filters.js:232
msgid "Required"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2138
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2118 templates/js/part.js:734
+#: part/models.py:2143 templates/js/part.js:734
msgid "Requires Value"
msgstr ""
-#: part/models.py:2119
+#: part/models.py:2144
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2124 templates/js/part.js:741
+#: part/models.py:2149 templates/js/part.js:741
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2150
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2187
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2192
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2165
+#: part/models.py:2194
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2193 part/models.py:2242 part/models.py:2243
+#: part/models.py:2226 part/models.py:2275 part/models.py:2276
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Data"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2247 templates/InvenTree/settings/category.html:67
+#: part/models.py:2280 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2281
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2278
+#: part/models.py:2315
msgid "Select parent part"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2324
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2293
+#: part/models.py:2330
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2332 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2295
+#: part/models.py:2332
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2298
+#: part/models.py:2335
msgid "Overage"
msgstr ""
-#: part/models.py:2299
+#: part/models.py:2336
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2302
+#: part/models.py:2339
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2305
+#: part/models.py:2342
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "Checksum"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2348 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2312
+#: part/models.py:2349
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:287
+#: part/models.py:2354 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2318
+#: part/models.py:2355
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1859 part/views.py:1911
-#: stock/models.py:290
+#: part/models.py:2431 part/views.py:1736 part/views.py:1788
+#: stock/models.py:298
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2403 part/models.py:2405
+#: part/models.py:2440 part/models.py:2442
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2445
msgid "BOM Item"
msgstr ""
-#: part/models.py:2527
+#: part/models.py:2564
msgid "Part 1"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Part 2"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2563
+#: part/models.py:2600
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4247,14 +4197,6 @@ msgstr ""
msgid "Part Attachments"
msgstr ""
-#: part/templates/part/bom-delete.html:6
-msgid "Are you sure you want to delete this BOM item?"
-msgstr ""
-
-#: part/templates/part/bom-delete.html:8
-msgid "Deleting this entry will remove the BOM row from the following part"
-msgstr ""
-
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
@@ -4303,7 +4245,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:2154
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr ""
@@ -4319,8 +4261,8 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:590
-#: templates/js/stock.js:1313
+#: part/templates/part/bom.html:160 part/views.py:450
+#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr ""
@@ -4401,7 +4343,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:2564
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr ""
@@ -4461,11 +4403,12 @@ msgid "View grid display"
msgstr ""
#: part/templates/part/category.html:218
-#: stock/templates/stock/location.html:192 templates/js/stock.js:737
+#: stock/templates/stock/location.html:192 templates/js/stock.js:751
msgid "Create new location"
msgstr ""
#: part/templates/part/category.html:223 part/templates/part/category.html:253
+#: part/templates/part/part_base.html:378
msgid "New Category"
msgstr ""
@@ -4477,10 +4420,18 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:260 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1223
msgid "Create new Stock Location"
msgstr ""
+#: part/templates/part/category.html:279
+msgid "Select parent category"
+msgstr ""
+
+#: part/templates/part/category.html:286 part/views.py:2389
+msgid "Edit Part Category"
+msgstr ""
+
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4526,7 +4477,7 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:466
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr ""
@@ -4639,36 +4590,6 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:101
-msgid "Internal Price Information"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:19 part/views.py:2989
-msgid "Add Internal Price Break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:28 templates/403.html:5
-#: templates/403.html:11
-msgid "Permission Denied"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:31 templates/403.html:14
-msgid "You do not have permission to view this page."
-msgstr ""
-
-#: part/templates/part/internal_prices.html:59
-msgid "No internal price break information found"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:110
-msgid "Edit internal price break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:111
-msgid "Delete internal price break"
-msgstr ""
-
#: part/templates/part/manufacturer.html:11
msgid "Part Manufacturers"
msgstr ""
@@ -4678,7 +4599,7 @@ msgid "Delete manufacturer parts"
msgstr ""
#: part/templates/part/manufacturer.html:53
-#: part/templates/part/supplier.html:57
+#: part/templates/part/supplier.html:56
msgid "Create new manufacturer"
msgstr ""
@@ -4702,125 +4623,27 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
-msgid "Order Price Information"
+#: part/templates/part/navbar.html:77
+msgid "Prices"
msgstr ""
-#: part/templates/part/navbar.html:78
-msgid "Order Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
-#: part/templates/part/part_pricing.html:82
-msgid "Internal Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:107
-msgid "Sales Price Information"
-msgstr ""
-
-#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:109 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:112 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
+#: part/templates/part/navbar.html:117 part/templates/part/navbar.html:120
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:130 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:25
-#: part/templates/part/part_base.html:282
-msgid "Calculate"
-msgstr ""
-
-#: part/templates/part/order_prices.html:32
-msgid "Pricing ranges"
-msgstr ""
-
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/part_pricing.html:22
-msgid "Supplier Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:38
-#: part/templates/part/order_prices.html:63
-#: part/templates/part/order_prices.html:95
-#: part/templates/part/order_prices.html:109
-#: part/templates/part/part_pricing.html:26
-#: part/templates/part/part_pricing.html:52
-#: part/templates/part/part_pricing.html:85
-#: part/templates/part/part_pricing.html:100
-msgid "Unit Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:45
-#: part/templates/part/order_prices.html:70
-#: part/templates/part/order_prices.html:100
-#: part/templates/part/order_prices.html:114
-#: part/templates/part/part_pricing.html:32
-#: part/templates/part/part_pricing.html:58
-#: part/templates/part/part_pricing.html:89
-#: part/templates/part/part_pricing.html:104
-msgid "Total Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:53
-#: part/templates/part/part_pricing.html:40
-msgid "No supplier pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:129
-#: part/templates/part/part_pricing.html:48
-msgid "BOM Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:78
-#: part/templates/part/part_pricing.html:66
-msgid "Note: BOM pricing is incomplete for this part"
-msgstr ""
-
-#: part/templates/part/order_prices.html:85
-#: part/templates/part/part_pricing.html:73
-msgid "No BOM pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:123
-#: part/templates/part/part_pricing.html:113
-msgid "No pricing information is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:139
-msgid "Stock Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:147
-msgid "No stock pricing history is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:166
-#, python-format
-msgid "Single Price - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:178
-#, python-format
-msgid "Single Price Difference - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:190
-#, python-format
-msgid "Part Single Price - %(currency)s"
-msgstr ""
-
#: part/templates/part/params.html:17
msgid "Add new parameter"
msgstr ""
@@ -4841,8 +4664,8 @@ msgstr ""
msgid "Part List"
msgstr ""
-#: part/templates/part/part_base.html:26 templates/js/company.js:156
-#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161
+#: part/templates/part/part_base.html:26 templates/js/company.js:280
+#: templates/js/company.js:480 templates/js/part.js:84 templates/js/part.js:161
msgid "Inactive"
msgstr ""
@@ -4905,7 +4728,7 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131
+#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:132
msgid "Required for Build Orders"
msgstr ""
@@ -4926,10 +4749,86 @@ msgstr ""
msgid "Building"
msgstr ""
+#: part/templates/part/part_base.html:285 part/templates/part/prices.html:131
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:379
+msgid "Create New Part Category"
+msgstr ""
+
+#: part/templates/part/part_base.html:387
+msgid "New Parent"
+msgstr ""
+
+#: part/templates/part/part_base.html:435
+msgid "Edit Part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:27
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:31
+#: part/templates/part/prices.html:58 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:107
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:89
+#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:38
+#: part/templates/part/prices.html:65 part/templates/part/prices.html:95
+#: part/templates/part/prices.html:112
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:46
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:55
+#: part/templates/part/prices.html:235
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:73
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:80
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:113
+#: part/templates/part/prices.html:121
+msgid "No pricing information is available for this part."
+msgstr ""
+
#: part/templates/part/part_tests.html:17
msgid "Add Test Template"
msgstr ""
+#: part/templates/part/part_tests.html:61
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:79
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:91
+msgid "Delete Test Result Template"
+msgstr ""
+
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr ""
@@ -4964,12 +4863,98 @@ msgstr ""
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
-#: part/templates/part/related.html:18
-msgid "Add Related"
+#: part/templates/part/prices.html:12
+msgid "General Price Information"
msgstr ""
-#: part/templates/part/sale_prices.html:10
-msgid "Sell Price Information"
+#: part/templates/part/prices.html:22
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:28
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:29
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:56
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:104
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:105
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:127
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:146
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:147 part/templates/part/prices.html:167
+#: part/templates/part/prices.html:193 part/templates/part/prices.html:224
+#: part/templates/part/prices.html:251 part/templates/part/prices.html:279
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:172
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:180
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:192
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:206 part/views.py:2859
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:223
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:250
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:290
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:340
+#, python-format
+msgid "Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:352
+#, python-format
+msgid "Single Price Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:364
+#, python-format
+msgid "Part Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:464
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/related.html:18
+msgid "Add Related"
msgstr ""
#: part/templates/part/sales_orders.html:18
@@ -5043,216 +5028,180 @@ msgstr ""
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:164
-msgid "Add part attachment"
-msgstr ""
-
-#: part/views.py:217 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr ""
-
-#: part/views.py:221
-msgid "Part attachment updated"
-msgstr ""
-
-#: part/views.py:236
-msgid "Delete Part Attachment"
-msgstr ""
-
-#: part/views.py:244
-msgid "Deleted part attachment"
-msgstr ""
-
-#: part/views.py:253
-msgid "Create Test Template"
-msgstr ""
-
-#: part/views.py:280
-msgid "Edit Test Template"
-msgstr ""
-
-#: part/views.py:294
-msgid "Delete Test Template"
-msgstr ""
-
-#: part/views.py:301
+#: part/views.py:161
msgid "Set Part Category"
msgstr ""
-#: part/views.py:351
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:386
+#: part/views.py:246
msgid "Create Variant"
msgstr ""
-#: part/views.py:471
+#: part/views.py:331
msgid "Copied part"
msgstr ""
-#: part/views.py:525 part/views.py:663
+#: part/views.py:385 part/views.py:523
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:595
+#: part/views.py:455
msgid "Created new part"
msgstr ""
-#: part/views.py:763
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1092
+#: part/views.py:925
+msgid "None"
+msgstr ""
+
+#: part/views.py:984
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1194
-msgid "Upload Part Image"
-msgstr ""
-
-#: part/views.py:1200 part/views.py:1235
-msgid "Updated part image"
-msgstr ""
-
-#: part/views.py:1209
+#: part/views.py:1086
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1238
+#: part/views.py:1112
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:1115
msgid "Part image not found"
msgstr ""
-#: part/views.py:1249
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1284
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1314
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1335
+#: part/views.py:1212
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1356
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1367
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1501
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1862
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1887 part/views.py:1890
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr ""
-#: part/views.py:1896
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1934
+#: part/views.py:1811
msgid "Select a part"
msgstr ""
-#: part/views.py:1940
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1944
+#: part/views.py:1821
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2090
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2222
+#: part/views.py:2099
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2363
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2373
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2380
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2388
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2438
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2452
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2512
-msgid "Edit Part Category"
-msgstr ""
-
-#: part/views.py:2550
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2556
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2608
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2709
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2765
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2784
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2854
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2910
-msgid "Confim BOM item deletion"
+#: part/views.py:2792
+msgid "Added new price break"
msgstr ""
-#: part/views.py:2998
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3006
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5358,17 +5307,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1739
+#: stock/models.py:1759
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1745
+#: stock/models.py:1765
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:1012
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr ""
@@ -5380,287 +5329,287 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:212
+#: stock/api.py:211
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:280
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
+#: stock/forms.py:81 stock/forms.py:385 stock/models.py:513
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:419
+#: stock/forms.py:82 stock/forms.py:386
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:118
+#: stock/forms.py:85
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:169
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:173 stock/forms.py:349
+#: stock/forms.py:140 stock/forms.py:316
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:203 stock/forms.py:259
+#: stock/forms.py:170 stock/forms.py:226
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:75
+#: stock/forms.py:234 templates/js/table_filters.js:75
#: templates/js/table_filters.js:138
msgid "Include sublocations"
msgstr ""
-#: stock/forms.py:267
+#: stock/forms.py:234
msgid "Include stock items in sub locations"
msgstr ""
-#: stock/forms.py:302
+#: stock/forms.py:269
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:309
+#: stock/forms.py:276
msgid "Stock quantity to assign"
msgstr ""
-#: stock/forms.py:337
+#: stock/forms.py:304
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:347
+#: stock/forms.py:314
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/forms.py:375
+#: stock/forms.py:342
msgid "Destination stock location"
msgstr ""
-#: stock/forms.py:377
+#: stock/forms.py:344
msgid "Add note (required)"
msgstr ""
-#: stock/forms.py:381 stock/views.py:852 stock/views.py:1051
+#: stock/forms.py:348 stock/views.py:705 stock/views.py:904
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/forms.py:381
+#: stock/forms.py:348
msgid "Confirm movement of stock items"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set Default Location"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:52 stock/models.py:542
+#: stock/models.py:56 stock/models.py:550
msgid "Owner"
msgstr ""
-#: stock/models.py:53 stock/models.py:543
+#: stock/models.py:57 stock/models.py:551
msgid "Select Owner"
msgstr ""
-#: stock/models.py:271
+#: stock/models.py:279
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:307
+#: stock/models.py:315
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:317 stock/models.py:326
+#: stock/models.py:325 stock/models.py:334
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:318
+#: stock/models.py:326
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:340
+#: stock/models.py:348
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:346
+#: stock/models.py:354
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:361
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:395
+#: stock/models.py:403
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:412
msgid "Base part"
msgstr ""
-#: stock/models.py:413
+#: stock/models.py:421
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:426 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:421
+#: stock/models.py:429
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:428
+#: stock/models.py:436
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:433 stock/templates/stock/item_base.html:270
+#: stock/models.py:441 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:436
+#: stock/models.py:444
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:452
+#: stock/models.py:460
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:472
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:476
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:477
+#: stock/models.py:485
msgid "Source Build"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:487
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:490
+#: stock/models.py:498
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:493
+#: stock/models.py:501
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:499
+#: stock/models.py:507
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:514
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:529 stock/templates/stock/item_notes.html:13
+#: stock/models.py:537 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:538
+#: stock/models.py:546
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1006
+#: stock/models.py:1014
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1012
+#: stock/models.py:1020
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1018
+#: stock/models.py:1026
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1021
+#: stock/models.py:1029
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1024
+#: stock/models.py:1032
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1031
+#: stock/models.py:1039
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1197
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1679
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1716
+#: stock/models.py:1736
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1722
+#: stock/models.py:1742
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1740
+#: stock/models.py:1760
msgid "Test name"
msgstr ""
-#: stock/models.py:1746 templates/js/table_filters.js:217
+#: stock/models.py:1766 templates/js/table_filters.js:222
msgid "Test result"
msgstr ""
-#: stock/models.py:1752
+#: stock/models.py:1772
msgid "Test output value"
msgstr ""
-#: stock/models.py:1759
+#: stock/models.py:1779
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1785
msgid "Test notes"
msgstr ""
@@ -5850,6 +5799,10 @@ msgstr ""
msgid "No stocktake performed"
msgstr ""
+#: stock/templates/stock/item_base.html:499
+msgid "Edit Stock Status"
+msgstr ""
+
#: stock/templates/stock/item_childs.html:12
msgid "Child Stock Items"
msgstr ""
@@ -5909,6 +5862,19 @@ msgstr ""
msgid "Add Test Data"
msgstr ""
+#: stock/templates/stock/item_tests.html:86
+#: stock/templates/stock/item_tests.html:111
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:131
+msgid "Edit Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:145
+msgid "Delete Test Result"
+msgstr ""
+
#: stock/templates/stock/location.html:20
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
@@ -5957,7 +5923,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:97 users/models.py:41
+#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -5997,7 +5963,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1196
msgid "Convert Stock Item"
msgstr ""
@@ -6030,8 +5996,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
-#: stock/views.py:1830
+#: stock/views.py:230 stock/views.py:1175 stock/views.py:1297
+#: stock/views.py:1662
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -6039,208 +6005,188 @@ msgstr ""
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:265
-msgid "Add Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:311
-msgid "Edit Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:327
-msgid "Delete Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:343
+#: stock/views.py:264
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:273
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:297
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:385
+#: stock/views.py:306
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:396
+#: stock/views.py:317
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:407
+#: stock/views.py:328
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:345
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:444
-msgid "Add Test Result"
-msgstr ""
-
-#: stock/views.py:484
-msgid "Edit Test Result"
-msgstr ""
-
-#: stock/views.py:501
-msgid "Delete Test Result"
-msgstr ""
-
-#: stock/views.py:509
+#: stock/views.py:362
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:630
+#: stock/views.py:483
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:656
+#: stock/views.py:509
msgid "Install Stock Item"
msgstr ""
-#: stock/views.py:755
+#: stock/views.py:608
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:863
+#: stock/views.py:716
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:888
+#: stock/views.py:741
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Take"
msgstr ""
-#: stock/views.py:1001
+#: stock/views.py:854
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:187
+#: stock/views.py:854 users/models.py:188
msgid "Add"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:855
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:1031
+#: stock/views.py:884
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:1036
+#: stock/views.py:889
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:1043
+#: stock/views.py:896
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:1107
+#: stock/views.py:960
msgid "No action performed"
msgstr ""
-#: stock/views.py:1122
+#: stock/views.py:975
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:1137
+#: stock/views.py:990
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:1150
+#: stock/views.py:1003
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:1190
+#: stock/views.py:1043
msgid "No items were moved"
msgstr ""
-#: stock/views.py:1193
+#: stock/views.py:1046
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:1212
+#: stock/views.py:1065
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1222
-msgid "Edit Stock Item Status"
-msgstr ""
-
-#: stock/views.py:1245
+#: stock/views.py:1077
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1482
+#: stock/views.py:1314
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:327
+#: stock/views.py:1407 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1717
+#: stock/views.py:1549
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1799
+#: stock/views.py:1631
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1899
+#: stock/views.py:1731
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1912
+#: stock/views.py:1744
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1923
+#: stock/views.py:1755
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1930
+#: stock/views.py:1762
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1939
+#: stock/views.py:1771
msgid "Add Stock Tracking Entry"
msgstr ""
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
msgstr ""
@@ -6269,35 +6215,39 @@ msgstr ""
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:145
-msgid "Expired Stock"
+#: templates/InvenTree/index.html:131
+msgid "Depleted Stock"
msgstr ""
#: templates/InvenTree/index.html:146
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:147
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:192
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:185
+#: templates/InvenTree/index.html:193
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:214
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:207
+#: templates/InvenTree/index.html:215
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:237
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:230
+#: templates/InvenTree/index.html:238
msgid "Overdue Sales Orders"
msgstr ""
@@ -6582,24 +6532,12 @@ msgstr ""
msgid "copy version information"
msgstr ""
-#: templates/about.html:100 templates/js/modals.js:568
-#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54
-#: templates/modals.html:97
+#: templates/about.html:100 templates/js/modals.js:34
+#: templates/js/modals.js:677 templates/js/modals.js:970
+#: templates/modals.html:29 templates/modals.html:54 templates/modals.html:97
msgid "Close"
msgstr ""
-#: templates/attachment_table.html:6
-msgid "Add Attachment"
-msgstr ""
-
-#: templates/attachment_table.html:17
-msgid "Uploaded"
-msgstr ""
-
-#: templates/attachment_table.html:35
-msgid "Delete attachment"
-msgstr ""
-
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6616,6 +6554,22 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
+#: templates/js/attachment.js:16
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/attachment.js:56
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/attachment.js:69
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/attachment.js:76
+msgid "Delete attachment"
+msgstr ""
+
#: templates/js/barcode.js:8
msgid "Scan barcode data here using wedge scanner"
msgstr ""
@@ -6644,7 +6598,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:921
+#: templates/js/barcode.js:119 templates/js/modals.js:1030
msgid "Invalid server response"
msgstr ""
@@ -6744,7 +6698,7 @@ msgstr ""
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:372
+#: templates/js/bom.js:372 templates/js/bom.js:519
msgid "Delete BOM Item"
msgstr ""
@@ -6772,7 +6726,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/build.js:222 templates/js/order.js:382
+#: templates/js/build.js:222 templates/js/order.js:449
msgid "Location not specified"
msgstr ""
@@ -6798,7 +6752,7 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
-#: templates/js/stock.js:514 templates/js/stock.js:966
+#: templates/js/stock.js:514 templates/js/stock.js:980
msgid "Select"
msgstr ""
@@ -6810,45 +6764,69 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/company.js:74
+#: templates/js/company.js:45
+msgid "Edit Company"
+msgstr ""
+
+#: templates/js/company.js:66
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/company.js:143
msgid "Parts Supplied"
msgstr ""
-#: templates/js/company.js:83
+#: templates/js/company.js:152
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/company.js:96
+#: templates/js/company.js:165
msgid "No company information found"
msgstr ""
-#: templates/js/company.js:129
+#: templates/js/company.js:183
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/company.js:200
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/company.js:253
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/company.js:148 templates/js/company.js:347
+#: templates/js/company.js:272 templates/js/company.js:472
#: templates/js/part.js:68 templates/js/part.js:153
msgid "Template part"
msgstr ""
-#: templates/js/company.js:152 templates/js/company.js:351
+#: templates/js/company.js:276 templates/js/company.js:476
#: templates/js/part.js:72 templates/js/part.js:157
msgid "Assembled part"
msgstr ""
-#: templates/js/company.js:226
+#: templates/js/company.js:350
msgid "No parameters found"
msgstr ""
-#: templates/js/company.js:262
+#: templates/js/company.js:386
msgid "Edit parameter"
msgstr ""
-#: templates/js/company.js:263
+#: templates/js/company.js:387
msgid "Delete parameter"
msgstr ""
-#: templates/js/company.js:328
+#: templates/js/company.js:406
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/company.js:417
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/company.js:453
msgid "No supplier parts found"
msgstr ""
@@ -6876,6 +6854,83 @@ msgstr ""
msgid "Create filter"
msgstr ""
+#: templates/js/forms.js:278 templates/js/forms.js:291
+#: templates/js/forms.js:303 templates/js/forms.js:315
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/forms.js:279
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:292
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:304
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:316
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:583 templates/js/modals.js:1040
+msgid "No Response"
+msgstr ""
+
+#: templates/js/forms.js:584 templates/js/modals.js:1041
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/forms.js:590 templates/js/modals.js:1050
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/forms.js:591 templates/js/modals.js:1051
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/forms.js:597 templates/js/modals.js:1055
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/forms.js:598 templates/js/modals.js:1056
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/forms.js:604 templates/js/modals.js:1060
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/forms.js:605 templates/js/modals.js:1061
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/forms.js:611 templates/js/modals.js:1065
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/forms.js:612 templates/js/modals.js:1066
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/forms.js:618 templates/js/modals.js:1069
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/forms.js:788 templates/modals.html:21 templates/modals.html:47
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/forms.js:1161
+msgid "Searching"
+msgstr ""
+
+#: templates/js/forms.js:1301
+msgid "Clear input"
+msgstr ""
+
#: templates/js/label.js:10 templates/js/report.js:98
msgid "Select Stock Items"
msgstr ""
@@ -6916,112 +6971,102 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:265
-msgid "Waiting for server..."
-msgstr ""
-
-#: templates/js/modals.js:424
-msgid "Show Error Information"
-msgstr ""
-
-#: templates/js/modals.js:491 templates/modals.html:76
-msgid "Accept"
-msgstr ""
-
-#: templates/js/modals.js:492 templates/modals.html:75
+#: templates/js/modals.js:59 templates/js/modals.js:105
+#: templates/js/modals.js:601 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:556
-msgid "Loading Data"
-msgstr ""
-
-#: templates/js/modals.js:567 templates/js/modals.js:860
+#: templates/js/modals.js:60 templates/js/modals.js:104
+#: templates/js/modals.js:676 templates/js/modals.js:969
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:103
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/modals.js:374
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/modals.js:533
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/modals.js:600 templates/modals.html:76
+msgid "Accept"
+msgstr ""
+
+#: templates/js/modals.js:665
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/modals.js:920
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:920
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:824
+#: templates/js/modals.js:933
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:921
+#: templates/js/modals.js:1030
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:931
-msgid "No Response"
-msgstr ""
-
-#: templates/js/modals.js:932
-msgid "No response from the InvenTree server"
-msgstr ""
-
-#: templates/js/modals.js:936
+#: templates/js/modals.js:1045
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:937
+#: templates/js/modals.js:1046
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:941
-msgid "Error 401: Not Authenticated"
+#: templates/js/model_renderers.js:21
+msgid "Company ID"
msgstr ""
-#: templates/js/modals.js:942
-msgid "Authentication credentials not supplied"
+#: templates/js/model_renderers.js:63
+msgid "Location ID"
msgstr ""
-#: templates/js/modals.js:946
-msgid "Error 403: Permission Denied"
+#: templates/js/model_renderers.js:90
+msgid "Part ID"
msgstr ""
-#: templates/js/modals.js:947
-msgid "You do not have the required permissions to access this function"
+#: templates/js/model_renderers.js:126
+msgid "Category ID"
msgstr ""
-#: templates/js/modals.js:951
-msgid "Error 404: Resource Not Found"
+#: templates/js/model_renderers.js:150
+msgid "Supplier Part ID"
msgstr ""
-#: templates/js/modals.js:952
-msgid "The requested resource could not be located on the server"
+#: templates/js/order.js:31
+msgid "Create Sales Order"
msgstr ""
-#: templates/js/modals.js:956
-msgid "Error 408: Timeout"
-msgstr ""
-
-#: templates/js/modals.js:957
-msgid "Connection timeout while requesting data from server"
-msgstr ""
-
-#: templates/js/modals.js:960
-msgid "Error requesting form data"
-msgstr ""
-
-#: templates/js/order.js:138
+#: templates/js/order.js:200
msgid "No purchase orders found"
msgstr ""
-#: templates/js/order.js:162 templates/js/order.js:257
+#: templates/js/order.js:224 templates/js/order.js:319
msgid "Order is overdue"
msgstr ""
-#: templates/js/order.js:234
+#: templates/js/order.js:296
msgid "No sales orders found"
msgstr ""
-#: templates/js/order.js:343
+#: templates/js/order.js:333
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/order.js:410
msgid "No sales order allocations found"
msgstr ""
@@ -7061,11 +7106,11 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:476 templates/js/table_filters.js:323
+#: templates/js/part.js:476 templates/js/table_filters.js:328
msgid "Low stock"
msgstr ""
-#: templates/js/part.js:660 templates/js/stock.js:990
+#: templates/js/part.js:660 templates/js/stock.js:1004
msgid "Path"
msgstr ""
@@ -7085,7 +7130,22 @@ msgstr ""
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/part.js:806
+#: templates/js/part.js:786
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/part.js:839
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:840
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:959
msgid "Single Price Difference"
msgstr ""
@@ -7263,75 +7323,75 @@ msgstr ""
msgid "Stocktake"
msgstr ""
-#: templates/js/stock.js:853
+#: templates/js/stock.js:867
msgid "Stock Status"
msgstr ""
-#: templates/js/stock.js:868
+#: templates/js/stock.js:882
msgid "Set Stock Status"
msgstr ""
-#: templates/js/stock.js:882
+#: templates/js/stock.js:896
msgid "Select Status Code"
msgstr ""
-#: templates/js/stock.js:883
+#: templates/js/stock.js:897
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1022
+#: templates/js/stock.js:1036
msgid "Invalid date"
msgstr ""
-#: templates/js/stock.js:1069
+#: templates/js/stock.js:1083
msgid "Location no longer exists"
msgstr ""
-#: templates/js/stock.js:1088
+#: templates/js/stock.js:1102
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/stock.js:1107
+#: templates/js/stock.js:1121
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/stock.js:1125
+#: templates/js/stock.js:1139
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/stock.js:1148
+#: templates/js/stock.js:1162
msgid "Added"
msgstr ""
-#: templates/js/stock.js:1156
+#: templates/js/stock.js:1170
msgid "Removed"
msgstr ""
-#: templates/js/stock.js:1188
+#: templates/js/stock.js:1202
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1200
+#: templates/js/stock.js:1214
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1201
+#: templates/js/stock.js:1215
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1325
+#: templates/js/stock.js:1339
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1366
+#: templates/js/stock.js:1380
msgid "No installed items"
msgstr ""
-#: templates/js/stock.js:1389
+#: templates/js/stock.js:1403
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1417
+#: templates/js/stock.js:1431
msgid "Uninstall Stock Item"
msgstr ""
@@ -7352,7 +7412,7 @@ msgid "Include locations"
msgstr ""
#: templates/js/table_filters.js:86 templates/js/table_filters.js:87
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:305
msgid "Include subcategories"
msgstr ""
@@ -7385,7 +7445,7 @@ msgstr ""
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:290
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:295
msgid "Active parts"
msgstr ""
@@ -7457,43 +7517,51 @@ msgstr ""
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:236
+#: templates/js/table_filters.js:211
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/table_filters.js:212
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/table_filters.js:241
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
+#: templates/js/table_filters.js:265 templates/js/table_filters.js:282
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:306
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:305
+#: templates/js/table_filters.js:310
msgid "Has IPN"
msgstr "A un IPN"
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:311
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:311
+#: templates/js/table_filters.js:316
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:319
+#: templates/js/table_filters.js:324
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:335
+#: templates/js/table_filters.js:340
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:347
+#: templates/js/table_filters.js:352
msgid "Purchasable"
msgstr ""
@@ -7550,10 +7618,6 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:47
-msgid "Form errors exist"
-msgstr ""
-
#: templates/navbar.html:13
msgid "Toggle navigation"
msgstr ""
@@ -7570,7 +7634,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:38
+#: templates/navbar.html:77 users/models.py:39
msgid "Admin"
msgstr ""
@@ -7790,35 +7854,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:174
+#: users/models.py:175
msgid "Permission set"
msgstr ""
-#: users/models.py:182
+#: users/models.py:183
msgid "Group"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "View"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "Permission to view items"
msgstr ""
-#: users/models.py:187
+#: users/models.py:188
msgid "Permission to add items"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Change"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:191
+#: users/models.py:192
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index fdb3b7ca79..ae1f42af1e 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-01 22:35+0000\n"
-"PO-Revision-Date: 2021-07-01 22:38\n"
+"POT-Creation-Date: 2021-07-03 12:15+0000\n"
+"PO-Revision-Date: 2021-07-03 12:44\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -29,14 +29,14 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: InvenTree/fields.py:84
+#: InvenTree/fields.py:99
msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
-#: order/forms.py:75 part/forms.py:134
+#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
+#: order/forms.py:74 part/forms.py:118 templates/js/forms.js:486
msgid "Confirm"
msgstr ""
@@ -77,8 +77,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
-#: stock/views.py:1795
+#: InvenTree/helpers.py:403 order/models.py:311 order/models.py:421
+#: stock/views.py:1627
msgid "Invalid quantity provided"
msgstr ""
@@ -106,49 +106,53 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1758
+#: InvenTree/models.py:61 stock/models.py:1778
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:60
+#: InvenTree/models.py:62
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:62 templates/attachment_table.html:16
+#: InvenTree/models.py:64 templates/js/attachment.js:52
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:62
+#: InvenTree/models.py:64
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2043
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1179
+#: templates/js/stock.js:1193
msgid "User"
msgstr ""
-#: InvenTree/models.py:72
+#: InvenTree/models.py:74
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396
-#: label/models.py:102 part/models.py:671 part/models.py:2163
+#: InvenTree/models.py:102
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:414
+#: label/models.py:103 part/models.py:680 part/models.py:2192
#: part/templates/part/params.html:27 report/models.py:180
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/company.js:235 templates/js/part.js:118
-#: templates/js/part.js:642 templates/js/stock.js:972
+#: templates/js/company.js:359 templates/js/part.js:118
+#: templates/js/part.js:642 templates/js/stock.js:986
msgid "Name"
msgstr ""
-#: InvenTree/models.py:114 build/models.py:135
-#: build/templates/build/detail.html:21 company/models.py:339
-#: company/models.py:532 company/templates/company/detail.html:27
+#: InvenTree/models.py:125 build/models.py:139
+#: build/templates/build/detail.html:21 company/models.py:353
+#: company/models.py:554 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
-#: part/models.py:695 part/templates/part/detail.html:54
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:110
+#: order/models.py:154 order/templates/order/purchase_order_detail.html:174
+#: part/models.py:704 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
#: report/templates/report/inventree_build_order_base.html:118
@@ -156,39 +160,43 @@ msgstr ""
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
#: templates/js/build.js:834 templates/js/build.js:1102
-#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
+#: templates/js/company.js:125 templates/js/order.js:245
+#: templates/js/order.js:347 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
-#: templates/js/stock.js:557 templates/js/stock.js:984
-#: templates/js/stock.js:1029
+#: templates/js/stock.js:557 templates/js/stock.js:998
+#: templates/js/stock.js:1043
msgid "Description"
msgstr ""
-#: InvenTree/models.py:115
+#: InvenTree/models.py:126
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:123
+#: InvenTree/models.py:134
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:504
-msgid "English"
+#: InvenTree/serializers.py:52
+msgid "Must be a valid number"
msgstr ""
#: InvenTree/settings.py:505
-msgid "French"
+msgid "English"
msgstr ""
#: InvenTree/settings.py:506
-msgid "German"
+msgid "French"
msgstr ""
#: InvenTree/settings.py:507
-msgid "Polish"
+msgid "German"
msgstr ""
#: InvenTree/settings.py:508
+msgid "Polish"
+msgstr ""
+
+#: InvenTree/settings.py:509
msgid "Turkish"
msgstr ""
@@ -446,50 +454,48 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
+#: build/templates/build/detail.html:121
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:881 templates/js/order.js:200
-#: templates/js/order.js:298
+#: templates/js/build.js:881 templates/js/order.js:262
+#: templates/js/order.js:365
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:225
+#: build/forms.py:43 build/models.py:229
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1354
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:31 common/models.py:741
-#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
-#: order/forms.py:289 order/models.py:613 order/models.py:835
-#: order/templates/order/order_wizard/match_parts.html:30
+#: company/forms.py:124 company/templates/company/supplier_part_pricing.html:79
+#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:702
+#: order/models.py:941 order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/purchase_order_detail.html:179
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:162
-#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
-#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
-#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:203
-#: part/templates/part/part_pricing.html:16
-#: part/templates/part/sale_prices.html:85
+#: order/templates/order/purchase_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:80
+#: order/templates/order/sales_order_detail.html:87
+#: order/templates/order/sales_order_detail.html:172
+#: order/templates/order/sales_order_detail.html:244 part/forms.py:314
+#: part/forms.py:344 part/forms.py:360 part/forms.py:376 part/models.py:2330
+#: part/templates/part/part_pricing.html:16 part/templates/part/prices.html:377
+#: part/templates/part/prices.html:474
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308
+#: stock/forms.py:142 stock/forms.py:275
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
-#: templates/js/build.js:1112 templates/js/order.js:393
-#: templates/js/part.js:796 templates/js/stock.js:1164
-#: templates/js/stock.js:1383
+#: templates/js/build.js:1112 templates/js/model_renderers.js:43
+#: templates/js/order.js:460 templates/js/part.js:827 templates/js/part.js:949
+#: templates/js/part.js:1005 templates/js/stock.js:1178
+#: templates/js/stock.js:1397
msgid "Quantity"
msgstr ""
@@ -501,7 +507,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:114 stock/forms.py:85
msgid "Serial Numbers"
msgstr ""
@@ -530,12 +536,12 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: stock/forms.py:347 stock/templates/stock/item_base.html:285
+#: stock/forms.py:314 stock/templates/stock/item_base.html:285
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:586 templates/js/order.js:378
-#: templates/js/stock.js:643 templates/js/stock.js:1056
+#: templates/js/build.js:586 templates/js/order.js:445
+#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr ""
@@ -544,13 +550,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:465
+#: build/templates/build/detail.html:59 order/models.py:545
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:868
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:630 templates/js/stock.js:1133
-#: templates/js/stock.js:1399
+#: templates/js/order.js:249 templates/js/order.js:352
+#: templates/js/stock.js:630 templates/js/stock.js:1147
+#: templates/js/stock.js:1413
msgid "Status"
msgstr ""
@@ -582,60 +588,60 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:66 build/templates/build/build_base.html:9
+#: build/models.py:70 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:195
msgid "Build Order"
msgstr ""
-#: build/models.py:67 build/templates/build/index.html:8
+#: build/models.py:71 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
-#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:191
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
+#: templates/InvenTree/settings/tabs.html:34 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:127
+#: build/models.py:131
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:98 order/models.py:615
-#: order/templates/order/purchase_order_detail.html:174
-#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
+#: build/models.py:132 order/models.py:242 order/models.py:529
+#: order/models.py:709 order/templates/order/purchase_order_detail.html:201
+#: order/templates/order/sales_order_detail.html:239 part/models.py:2339
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr ""
-#: build/models.py:138
+#: build/models.py:142
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:147 build/templates/build/build_base.html:163
+#: build/models.py:151 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr ""
-#: build/models.py:148
+#: build/models.py:152
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:153 build/templates/build/auto_allocate.html:16
+#: build/models.py:157 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:657 order/models.py:712
+#: build/templates/build/detail.html:26 company/models.py:689
+#: order/models.py:755 order/models.py:814
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:132
+#: order/templates/order/purchase_order_detail.html:159
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:214 part/models.py:321
-#: part/models.py:1975 part/models.py:1987 part/models.py:2002
-#: part/models.py:2020 part/models.py:2095 part/models.py:2191
-#: part/models.py:2277 part/templates/part/part_app_base.html:8
+#: order/templates/order/sales_order_detail.html:224 part/models.py:325
+#: part/models.py:1988 part/models.py:2004 part/models.py:2023
+#: part/models.py:2041 part/models.py:2120 part/models.py:2224
+#: part/models.py:2314 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
@@ -644,222 +650,222 @@ msgstr ""
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
#: templates/js/build.js:552 templates/js/build.js:839
-#: templates/js/build.js:1079 templates/js/company.js:140
-#: templates/js/company.js:339 templates/js/part.js:241
+#: templates/js/build.js:1079 templates/js/company.js:264
+#: templates/js/company.js:464 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
-#: templates/js/stock.js:1371
+#: templates/js/stock.js:1385
msgid "Part"
msgstr ""
-#: build/models.py:161
+#: build/models.py:165
msgid "Select part to build"
msgstr ""
-#: build/models.py:166
+#: build/models.py:170
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:170
+#: build/models.py:174
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:175
+#: build/models.py:179
msgid "Source Location"
msgstr ""
-#: build/models.py:179
+#: build/models.py:183
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:184
+#: build/models.py:188
msgid "Destination Location"
msgstr ""
-#: build/models.py:188
+#: build/models.py:192
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:192
+#: build/models.py:196
msgid "Build Quantity"
msgstr ""
-#: build/models.py:195
+#: build/models.py:199
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:199
+#: build/models.py:203
msgid "Completed items"
msgstr ""
-#: build/models.py:201
+#: build/models.py:205
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:205 part/templates/part/part_base.html:167
+#: build/models.py:209 part/templates/part/part_base.html:167
msgid "Build Status"
msgstr ""
-#: build/models.py:209
+#: build/models.py:213
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:462
+#: build/models.py:217 stock/models.py:470
msgid "Batch Code"
msgstr ""
-#: build/models.py:217
+#: build/models.py:221
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:104 part/models.py:867
-#: part/templates/part/detail.html:126 templates/js/order.js:293
+#: build/models.py:224 order/models.py:158 part/models.py:876
+#: part/templates/part/detail.html:126 templates/js/order.js:360
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:471
+#: build/models.py:228 order/models.py:551
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:217 templates/js/build.js:886
+#: build/models.py:232 order/models.py:284 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
-#: build/models.py:234
+#: build/models.py:238
msgid "completed by"
msgstr ""
-#: build/models.py:242
+#: build/models.py:246
msgid "Issued by"
msgstr ""
-#: build/models.py:243
+#: build/models.py:247
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:118
+#: build/models.py:255 build/templates/build/build_base.html:184
+#: build/templates/build/detail.html:105 order/models.py:172
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:871
+#: order/templates/order/sales_order_base.html:140 part/models.py:880
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:252
+#: build/models.py:256
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:257 build/templates/build/detail.html:91
+#: build/models.py:261 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
#: company/templates/company/manufacturer_part_detail.html:28
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:456 stock/templates/stock/item_base.html:345
+#: stock/models.py:464 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:458
+#: build/models.py:262 part/models.py:738 stock/models.py:466
msgid "Link to external URL"
msgstr ""
-#: build/models.py:262 build/templates/build/navbar.html:53
-#: company/models.py:132 company/models.py:539
+#: build/models.py:266 build/templates/build/navbar.html:53
+#: company/models.py:141 company/models.py:561
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:122
-#: order/models.py:617 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:176
+#: order/models.py:711 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/purchase_order_detail.html:243
-#: order/templates/order/sales_order_detail.html:309
+#: order/templates/order/purchase_order_detail.html:270
+#: order/templates/order/sales_order_detail.html:319
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:145
+#: order/templates/order/so_navbar.html:36 part/models.py:865
+#: part/templates/part/navbar.html:133
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
+#: stock/forms.py:140 stock/forms.py:284 stock/forms.py:316 stock/forms.py:344
+#: stock/models.py:536 stock/models.py:1678 stock/models.py:1784
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:713
msgid "Notes"
msgstr ""
-#: build/models.py:263
+#: build/models.py:267
msgid "Extra build notes"
msgstr ""
-#: build/models.py:740
+#: build/models.py:744
msgid "No build output specified"
msgstr ""
-#: build/models.py:743
+#: build/models.py:747
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:746
+#: build/models.py:750
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1152
+#: build/models.py:1160
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1177
+#: build/models.py:1185
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1181
+#: build/models.py:1189
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:809
+#: build/models.py:1196 order/models.py:915
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:812
+#: build/models.py:1200 order/models.py:918
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1204
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1264
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1316 stock/templates/stock/item_base.html:317
+#: build/models.py:1324 stock/templates/stock/item_base.html:317
#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1317
+#: build/models.py:1325
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1333 stock/templates/stock/item_base.html:8
+#: build/models.py:1341 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
#: templates/js/build.js:211 templates/js/build.js:929
-#: templates/js/order.js:366 templates/js/order.js:371
-#: templates/js/stock.js:1115
+#: templates/js/order.js:433 templates/js/order.js:438
+#: templates/js/stock.js:1129
msgid "Stock Item"
msgstr ""
-#: build/models.py:1334
+#: build/models.py:1342
msgid "Source stock item"
msgstr ""
-#: build/models.py:1347
+#: build/models.py:1355
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1355
+#: build/models.py:1363
msgid "Install into"
msgstr ""
-#: build/models.py:1356
+#: build/models.py:1364
msgid "Destination stock item"
msgstr ""
@@ -893,7 +899,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:724
#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -912,23 +918,52 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:160
+#: order/templates/order/sales_order_detail.html:85
+#: order/templates/order/sales_order_detail.html:170
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:450 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:570
+#: stock/models.py:458 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570 templates/js/model_renderers.js:41
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
-#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:124
+#: part/templates/part/navbar.html:127 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
+#: build/templates/build/attachments.html:51
+#: order/templates/order/so_attachments.html:79
+#: part/templates/part/attachments.html:81
+#: stock/templates/stock/item_attachments.html:81
+#: templates/attachment_table.html:6
+msgid "Add Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:69
+#: order/templates/order/so_attachments.html:52
+#: part/templates/part/attachments.html:35
+#: stock/templates/stock/item_attachments.html:49
+msgid "Edit Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:76
+#: order/templates/order/so_attachments.html:58
+#: part/templates/part/attachments.html:44
+#: stock/templates/stock/item_attachments.html:58
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/attachments.html:77
+#: order/templates/order/so_attachments.html:59
+#: part/templates/part/attachments.html:45
+#: stock/templates/stock/item_attachments.html:59
+msgid "Delete Attachment"
+msgstr ""
+
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
msgstr ""
@@ -989,8 +1024,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
#: order/templates/order/sales_order_base.html:88
-#: templates/js/table_filters.js:245 templates/js/table_filters.js:264
-#: templates/js/table_filters.js:281
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:269
+#: templates/js/table_filters.js:286
msgid "Overdue"
msgstr ""
@@ -1036,13 +1071,13 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:710
+#: build/templates/build/detail.html:84 order/models.py:812
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:279 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:279 templates/js/order.js:307
msgid "Sales Order"
msgstr ""
@@ -1183,10 +1218,10 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
-#: order/templates/order/purchase_order_detail.html:239
-#: order/templates/order/receive_parts.html:25 stock/forms.py:169
-#: stock/forms.py:375
+#: build/templates/build/detail.html:46 order/forms.py:88 order/models.py:771
+#: order/templates/order/purchase_order_detail.html:266
+#: order/templates/order/receive_parts.html:25 stock/forms.py:136
+#: stock/forms.py:342
msgid "Destination"
msgstr ""
@@ -1196,7 +1231,7 @@ msgstr ""
#: build/templates/build/detail.html:70
#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638
-#: templates/js/stock.js:1406 templates/js/table_filters.js:112
+#: templates/js/stock.js:1420 templates/js/table_filters.js:112
#: templates/js/table_filters.js:206
msgid "Batch"
msgstr ""
@@ -1251,7 +1286,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
-#: templates/js/stock.js:1044
+#: templates/js/stock.js:1058
msgid "Details"
msgstr ""
@@ -1287,7 +1322,6 @@ msgstr ""
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487
-#: stock/templates/stock/item_base.html:497
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1316,7 +1350,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/views.py:1821
+#: build/views.py:184 stock/views.py:1653
msgid "Serial numbers already exist"
msgstr ""
@@ -1332,7 +1366,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:281 build/views.py:371 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:346
msgid "Check the confirmation box"
msgstr ""
@@ -1429,31 +1463,6 @@ msgstr ""
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1070
-msgid "Add Build Order Attachment"
-msgstr ""
-
-#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
-#: stock/views.py:277
-msgid "Added attachment"
-msgstr ""
-
-#: build/views.py:1119 order/views.py:196 order/views.py:217
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/views.py:1129 order/views.py:200 order/views.py:221
-msgid "Attachment updated"
-msgstr ""
-
-#: build/views.py:1139 order/views.py:236 order/views.py:250
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
-msgid "Deleted attachment"
-msgstr ""
-
#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1470,7 +1479,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/attachment_table.html:15
+#: common/forms.py:34 templates/js/attachment.js:42
msgid "File"
msgstr ""
@@ -1503,7 +1512,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:72 company/models.py:94 company/models.py:95
+#: common/models.py:72 company/models.py:99 company/models.py:100
msgid "Company name"
msgstr ""
@@ -1607,9 +1616,9 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
-#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
-#: templates/js/table_filters.js:315
+#: common/models.py:160 part/models.py:2226 part/templates/part/detail.html:160
+#: report/models.py:186 stock/forms.py:226 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:320
msgid "Template"
msgstr ""
@@ -1617,8 +1626,8 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
+#: common/models.py:167 part/models.py:828 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:128 templates/js/table_filters.js:332
msgid "Assembly"
msgstr ""
@@ -1626,8 +1635,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:331
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:336
msgid "Component"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:845 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
@@ -1643,8 +1652,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:339
+#: common/models.py:188 part/models.py:850 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:344
msgid "Salable"
msgstr ""
@@ -1652,8 +1661,8 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
+#: common/models.py:195 part/models.py:840 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:348
msgid "Trackable"
msgstr ""
@@ -1661,7 +1670,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:860 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -1858,13 +1867,12 @@ msgstr ""
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:742 company/forms.py:190
+#: common/models.py:742 company/forms.py:125
msgid "Price break quantity"
msgstr ""
-#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
-#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
+#: templates/js/part.js:832
msgid "Price"
msgstr ""
@@ -1894,16 +1902,16 @@ msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:605
+#: order/templates/order/po_navbar.html:22 order/views.py:337
#: part/templates/part/bom_upload/upload_file.html:27
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:621
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:338 part/templates/part/bom_upload/select_fields.html:58
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr ""
@@ -1928,269 +1936,277 @@ msgstr ""
msgid "Previous Step"
msgstr ""
-#: company/forms.py:37 company/models.py:142
-#: company/templates/company/detail.html:42
-msgid "Currency"
-msgstr ""
-
-#: company/forms.py:38 company/models.py:144
-msgid "Default currency used for this company"
-msgstr ""
-
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:26 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:27 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:132 templates/js/part.js:787
+#: company/forms.py:67 templates/js/part.js:940
msgid "Single Price"
msgstr ""
-#: company/forms.py:133
+#: company/forms.py:68
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:141 company/models.py:321
+#: company/forms.py:76 company/models.py:335
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:147 company/models.py:328
+#: company/forms.py:82 company/models.py:342
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:149 company/models.py:327
+#: company/forms.py:84 company/models.py:341
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:162 part/bom.py:171
-#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408
+#: order/templates/order/purchase_order_detail.html:189 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:305 templates/js/company.js:533
msgid "MPN"
msgstr ""
-#: company/models.py:99
+#: company/models.py:104
msgid "Company description"
msgstr ""
-#: company/models.py:100
+#: company/models.py:105
msgid "Description of the company"
msgstr ""
-#: company/models.py:104 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:33 templates/js/company.js:60
+#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:129
msgid "Website"
msgstr ""
-#: company/models.py:104
+#: company/models.py:112
msgid "Company website URL"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:77
+#: company/models.py:116 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:108
+#: company/models.py:117
msgid "Company address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:120
msgid "Phone number"
msgstr ""
-#: company/models.py:112
+#: company/models.py:121
msgid "Contact phone number"
msgstr ""
-#: company/models.py:115 company/templates/company/company_base.html:91
+#: company/models.py:124 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:115
+#: company/models.py:124
msgid "Contact email address"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:98
+#: company/models.py:127 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:119
+#: company/models.py:128
msgid "Point of contact"
msgstr ""
-#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:102 part/models.py:728
+#: company/models.py:130 company/models.py:347 company/models.py:548
+#: order/models.py:156 part/models.py:737
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/company.js:188 templates/js/company.js:419
+#: templates/js/company.js:312 templates/js/company.js:544
#: templates/js/part.js:498
msgid "Link"
msgstr ""
-#: company/models.py:121
+#: company/models.py:130
msgid "Link to external company information"
msgstr ""
-#: company/models.py:129 part/models.py:738
+#: company/models.py:138 part/models.py:747
msgid "Image"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "is customer"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "is supplier"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "is manufacturer"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:403
+#: company/models.py:151 company/serializers.py:259
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:154
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:319 company/models.py:519 stock/models.py:411
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1603
+#: company/models.py:323 company/models.py:523 order/views.py:1127
msgid "Select part"
msgstr ""
-#: company/models.py:320 company/templates/company/detail.html:57
+#: company/models.py:334 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
#: part/bom.py:241 stock/templates/stock/item_base.html:352
-#: templates/js/company.js:44 templates/js/company.js:165
-#: templates/js/company.js:390
+#: templates/js/company.js:113 templates/js/company.js:289
+#: templates/js/company.js:515
msgid "Manufacturer"
msgstr ""
-#: company/models.py:334
+#: company/models.py:348
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:340
+#: company/models.py:354
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:390 company/models.py:520
+#: company/models.py:408 company/models.py:542
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:362
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:397
+#: company/models.py:415
msgid "Parameter name"
msgstr ""
-#: company/models.py:403 part/templates/part/params.html:28
+#: company/models.py:421 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
-#: templates/js/company.js:241 templates/js/stock.js:137
+#: stock/models.py:1771 templates/InvenTree/settings/header.html:8
+#: templates/js/company.js:365 templates/js/stock.js:137
msgid "Value"
msgstr ""
-#: company/models.py:404
+#: company/models.py:422
msgid "Parameter value"
msgstr ""
-#: company/models.py:410 part/models.py:813 part/models.py:2165
+#: company/models.py:428 part/models.py:822 part/models.py:2194
#: part/templates/part/detail.html:106 part/templates/part/params.html:29
-#: templates/js/company.js:247
+#: templates/js/company.js:371
msgid "Units"
msgstr ""
-#: company/models.py:411
+#: company/models.py:429
msgid "Parameter units"
msgstr ""
-#: company/models.py:507 company/templates/company/detail.html:62
+#: company/models.py:529 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:256
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
-#: templates/js/company.js:48 templates/js/company.js:364
-#: templates/js/order.js:170
+#: templates/js/company.js:117 templates/js/company.js:489
+#: templates/js/order.js:232
msgid "Supplier"
msgstr ""
-#: company/models.py:508
+#: company/models.py:530
msgid "Select supplier"
msgstr ""
-#: company/models.py:513 company/templates/company/supplier_part_base.html:88
+#: company/models.py:535 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:153 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:180 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:514
+#: company/models.py:536
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:521
+#: company/models.py:543
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:527
+#: company/models.py:549
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:533
+#: company/models.py:555
msgid "Supplier part description"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part_base.html:116
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305
+#: company/models.py:560 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2342
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "base cost"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:427 stock/templates/stock/item_base.html:310
-#: templates/js/stock.js:695
+#: company/models.py:566 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:435 stock/templates/stock/item_base.html:310
+#: templates/js/stock.js:709
msgid "Packaging"
msgstr ""
-#: company/models.py:544
+#: company/models.py:566
msgid "Part packaging"
msgstr ""
-#: company/models.py:546 part/models.py:1608
+#: company/models.py:568 part/models.py:1617
msgid "multiple"
msgstr ""
-#: company/models.py:546
+#: company/models.py:568
msgid "Order multiple"
msgstr ""
+#: company/serializers.py:68
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:69
+msgid "Currency Code"
+msgstr ""
+
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
#: company/templates/company/navbar.html:65 templates/js/build.js:563
@@ -2199,7 +2215,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:102
msgid "Company"
msgstr ""
@@ -2213,7 +2229,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:313
+#: company/templates/company/company_base.html:46 templates/js/order.js:61
msgid "Create Purchase Order"
msgstr ""
@@ -2221,7 +2237,8 @@ msgstr ""
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56 company/views.py:326
+#: company/templates/company/company_base.html:56
+#: company/templates/company/company_base.html:126
msgid "Delete Company"
msgstr ""
@@ -2235,15 +2252,9 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/delete.html:7
-#, python-format
-msgid "Are you sure you want to delete company '%(name)s'?"
-msgstr ""
-
-#: company/templates/company/delete.html:12
-#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be deleted."
+#: company/templates/company/company_base.html:166
+#: part/templates/part/part_base.html:307
+msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:21
@@ -2258,11 +2269,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:460
-#: order/templates/order/sales_order_base.html:94 stock/models.py:445
-#: stock/models.py:446 stock/templates/stock/item_base.html:262
-#: templates/js/company.js:40 templates/js/order.js:267
-#: templates/js/stock.js:1097
+#: company/templates/company/detail.html:67 order/models.py:540
+#: order/templates/order/sales_order_base.html:94 stock/models.py:453
+#: stock/models.py:454 stock/templates/stock/item_base.html:262
+#: templates/js/company.js:109 templates/js/order.js:329
+#: templates/js/stock.js:1111
msgid "Customer"
msgstr ""
@@ -2283,6 +2294,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
+#: company/templates/company/manufacturer_part_suppliers.html:46
#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
@@ -2305,26 +2317,25 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:68
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:127
-#: templates/js/stock.js:1312
+#: templates/js/stock.js:1326
msgid "New Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:69
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:72
-#: company/views.py:71 part/templates/part/manufacturer.html:52
-#: part/templates/part/supplier.html:56
+#: company/templates/company/detail_manufacturer_part.html:74
+#: company/views.py:66 part/templates/part/manufacturer.html:52
+#: part/templates/part/supplier.html:55
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:73
-#: company/views.py:284
+#: company/templates/company/detail_manufacturer_part.html:75
msgid "Create new Manufacturer"
msgstr ""
@@ -2335,7 +2346,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:123 part/templates/part/category.html:137
-#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
+#: part/templates/part/stock.html:55 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2347,26 +2358,24 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:44
-#: order/templates/order/purchase_order_detail.html:50
+#: part/templates/part/part_base.html:429
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1318
+#: part/templates/part/part_base.html:428 part/templates/part/supplier.html:17
+#: templates/js/stock.js:1332
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
-#: company/templates/company/manufacturer_part_suppliers.html:82
-#: company/views.py:64 order/templates/order/purchase_orders.html:185
-#: part/templates/part/supplier.html:50
+#: company/templates/company/manufacturer_part_suppliers.html:96
+#: company/views.py:60 part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
-#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:186
+#: company/templates/company/detail_supplier_part.html:73
msgid "Create new Supplier"
msgstr ""
@@ -2401,20 +2410,19 @@ msgstr ""
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:6
-msgid "Are you sure you want to delete the following Manufacturer Parts?"
+#: company/templates/company/manufacturer_part_base.html:125
+msgid "Edit Manufacturer Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:36
-#, python-format
-msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
+#: company/templates/company/manufacturer_part_base.html:134
+msgid "Delete Manufacturer Part"
msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:87
-#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
-#: templates/navbar.html:35
+#: company/views.py:59 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 part/templates/part/prices.html:153
+#: templates/InvenTree/search.html:316 templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2425,7 +2433,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:39 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:53
#: 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:128 templates/InvenTree/search.html:196
@@ -2451,9 +2459,11 @@ msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: company/templates/company/manufacturer_part_suppliers.html:142
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:191
+#: stock/views.py:855 templates/js/company.js:203 users/models.py:192
msgid "Delete"
msgstr ""
@@ -2471,11 +2481,27 @@ msgstr ""
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part_suppliers.html:83
+#: company/templates/company/manufacturer_part_suppliers.html:48
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:80
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:97
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
msgstr ""
+#: company/templates/company/manufacturer_part_suppliers.html:127
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:139
+msgid "Delete Parameters"
+msgstr ""
+
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
msgid "Manufactured Parts"
@@ -2492,8 +2518,8 @@ msgstr ""
#: stock/templates/stock/location.html:136
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
-#: templates/InvenTree/search.html:198 templates/js/stock.js:996
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2503,11 +2529,11 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: part/templates/part/navbar.html:101 part/templates/part/navbar.html:104
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:236
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
-#: users/models.py:45
+#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2516,10 +2542,10 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:213
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
-#: users/models.py:44
+#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2548,8 +2574,9 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
-#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:420
+#: stock/templates/stock/item_base.html:374 templates/js/company.js:505
+#: templates/js/stock.js:690
msgid "Supplier Part"
msgstr ""
@@ -2594,459 +2621,401 @@ msgid "Order Part"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:11
+#: part/templates/part/navbar.html:74
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2918
+#: company/templates/company/supplier_part_pricing.html:19
+#: company/templates/company/supplier_part_pricing.html:118
+#: part/templates/part/prices.html:264 part/views.py:2788
msgid "Add Price Break"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:38
-#: part/templates/part/sale_prices.html:46
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:89
-#: part/templates/part/sale_prices.html:97
+#: company/templates/company/supplier_part_pricing.html:52 part/views.py:2850
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:66 part/views.py:2836
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:91
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:90
-#: part/templates/part/sale_prices.html:98
+#: company/templates/company/supplier_part_pricing.html:92
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:81
-#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
-#: templates/navbar.html:36
+#: company/views.py:65 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 part/templates/part/prices.html:157
+#: templates/InvenTree/search.html:306 templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
-#: company/views.py:77 templates/InvenTree/search.html:336
+#: company/views.py:71 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:187
+#: company/views.py:72
msgid "New Customer"
msgstr ""
-#: company/views.py:86
+#: company/views.py:79
msgid "Companies"
msgstr ""
-#: company/views.py:87
+#: company/views.py:80
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:1115
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:1147
+#: company/views.py:190 part/views.py:1039
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:1154
+#: company/views.py:197 part/views.py:1046
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:1163
+#: company/views.py:206 part/views.py:1055
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: company/views.py:243
-msgid "Update Company Image"
-msgstr ""
-
-#: company/views.py:249
-msgid "Updated company image"
-msgstr ""
-
-#: company/views.py:259
-msgid "Edit Company"
-msgstr ""
-
-#: company/views.py:264
-msgid "Edited company information"
-msgstr ""
-
-#: company/views.py:287 order/templates/order/sales_orders.html:188
-msgid "Create new Customer"
-msgstr ""
-
-#: company/views.py:289
-msgid "Create new Company"
-msgstr ""
-
-#: company/views.py:316
-msgid "Created new company"
-msgstr ""
-
-#: company/views.py:332
-msgid "Company was deleted"
-msgstr ""
-
-#: company/views.py:357
-msgid "Edit Manufacturer Part"
-msgstr ""
-
-#: company/views.py:366
+#: company/views.py:251
msgid "Create New Manufacturer Part"
msgstr ""
-#: company/views.py:440
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: company/views.py:514
-msgid "Add Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:548
-msgid "Edit Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:588
+#: company/views.py:334
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:639 templates/js/stock.js:1319
+#: company/views.py:385 templates/js/stock.js:1333
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:783
+#: company/views.py:529
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2922
-msgid "Added new price break"
-msgstr ""
-
-#: company/views.py:916 part/views.py:2966
-msgid "Edit Price Break"
-msgstr ""
-
-#: company/views.py:931 part/views.py:2980
-msgid "Delete Price Break"
-msgstr ""
-
#: label/api.py:56 report/api.py:201
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:103
+#: label/models.py:104
msgid "Label name"
msgstr ""
-#: label/models.py:110
+#: label/models.py:111
msgid "Label description"
msgstr ""
-#: label/models.py:117 stock/forms.py:202
+#: label/models.py:118 stock/forms.py:169
msgid "Label"
msgstr ""
-#: label/models.py:118
+#: label/models.py:119
msgid "Label template file"
msgstr ""
-#: label/models.py:124 report/models.py:297
+#: label/models.py:125 report/models.py:297
msgid "Enabled"
msgstr ""
-#: label/models.py:125
+#: label/models.py:126
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Width [mm]"
msgstr ""
-#: label/models.py:131
+#: label/models.py:132
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Height [mm]"
msgstr ""
-#: label/models.py:138
+#: label/models.py:139
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:144 report/models.py:290
+#: label/models.py:145 report/models.py:290
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:145
+#: label/models.py:146
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:244 label/models.py:297
+#: label/models.py:249 label/models.py:306
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:245 label/models.py:298 report/models.py:317
+#: label/models.py:250 label/models.py:307 report/models.py:317
#: report/models.py:440 report/models.py:474
msgid "Filters"
msgstr ""
-#: order/forms.py:31 order/templates/order/order_base.html:47
+#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:42 order/templates/order/order_base.html:54
+#: order/forms.py:41 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
+#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:75 order/templates/order/sales_order_base.html:58
+#: order/forms.py:74 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:90
+#: order/forms.py:89
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:112
-msgid "Purchase Order reference"
-msgstr ""
-
-#: order/forms.py:119
-msgid "Target date for order delivery. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:147
-msgid "Enter sales order number"
-msgstr ""
-
-#: order/forms.py:154 order/models.py:472
-msgid "Target date for order completion. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:246
+#: order/forms.py:116
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:252
+#: order/forms.py:122
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:98
-msgid "Order reference"
-msgstr ""
-
-#: order/models.py:100
+#: order/models.py:154
msgid "Order description"
msgstr ""
-#: order/models.py:102
+#: order/models.py:156
msgid "Link to external page"
msgstr ""
-#: order/models.py:110 part/templates/part/detail.html:132
+#: order/models.py:164 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:117
+#: order/models.py:171
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:176
msgid "Order notes"
msgstr ""
-#: order/models.py:181 order/models.py:465
+#: order/models.py:243 order/models.py:530
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:248 order/models.py:545
msgid "Purchase order status"
msgstr ""
-#: order/models.py:190
+#: order/models.py:257
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:193 order/templates/order/order_base.html:98
-#: templates/js/order.js:179
+#: order/models.py:260 order/templates/order/order_base.html:98
+#: templates/js/order.js:241
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:193
+#: order/models.py:260
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:200
+#: order/models.py:267
msgid "received by"
msgstr ""
-#: order/models.py:205
+#: order/models.py:272
msgid "Issue Date"
msgstr ""
-#: order/models.py:206
+#: order/models.py:273
msgid "Date order was issued"
msgstr ""
-#: order/models.py:211
+#: order/models.py:278
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:212
+#: order/models.py:279
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:218
+#: order/models.py:285
msgid "Date order was completed"
msgstr ""
-#: order/models.py:242 part/views.py:1853 stock/models.py:300
-#: stock/models.py:1015
+#: order/models.py:309 part/views.py:1730 stock/models.py:308
+#: stock/models.py:1023
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:247
+#: order/models.py:314
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:345
+#: order/models.py:412
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:349
+#: order/models.py:416
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:351
+#: order/models.py:418
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:461
+#: order/models.py:541
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer Reference "
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:475 templates/js/order.js:303
+#: order/models.py:552
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:555 templates/js/order.js:370
msgid "Shipment Date"
msgstr ""
-#: order/models.py:482
+#: order/models.py:562
msgid "shipped by"
msgstr ""
-#: order/models.py:526
+#: order/models.py:606
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:613
+#: order/models.py:703
msgid "Item quantity"
msgstr ""
-#: order/models.py:615
+#: order/models.py:709
msgid "Line item reference"
msgstr ""
-#: order/models.py:617
+#: order/models.py:711
msgid "Line item notes"
msgstr ""
-#: order/models.py:643 order/models.py:710 templates/js/order.js:353
+#: order/models.py:741 order/models.py:812 templates/js/order.js:420
msgid "Order"
msgstr ""
-#: order/models.py:644 order/templates/order/order_base.html:9
+#: order/models.py:742 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
-#: templates/js/stock.js:669 templates/js/stock.js:1078
+#: stock/templates/stock/item_base.html:324 templates/js/order.js:210
+#: templates/js/stock.js:669 templates/js/stock.js:1092
msgid "Purchase Order"
msgstr ""
-#: order/models.py:658
+#: order/models.py:756
msgid "Supplier part"
msgstr ""
-#: order/models.py:661 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:219
+#: order/models.py:759 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:246
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:661
+#: order/models.py:759
msgid "Number of items received"
msgstr ""
-#: order/models.py:667 stock/models.py:537
-#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
+#: order/models.py:765 part/templates/part/prices.html:166 stock/models.py:545
+#: stock/templates/stock/item_base.html:331 templates/js/stock.js:704
msgid "Purchase Price"
msgstr ""
-#: order/models.py:668
+#: order/models.py:766
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:676
+#: order/models.py:774
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:718 part/templates/part/navbar.html:110
-#: part/templates/part/order_prices.html:108
-#: part/templates/part/part_pricing.html:97
+#: order/models.py:820 part/templates/part/part_pricing.html:97
+#: part/templates/part/prices.html:103 part/templates/part/prices.html:278
msgid "Sale Price"
msgstr ""
-#: order/models.py:719
+#: order/models.py:821
msgid "Unit sale price"
msgstr ""
-#: order/models.py:794 order/models.py:796
+#: order/models.py:900 order/models.py:902
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:800
+#: order/models.py:906
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:802
+#: order/models.py:908
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:805
+#: order/models.py:911
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:815
+#: order/models.py:921
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:820
+#: order/models.py:926
msgid "Line"
msgstr ""
-#: order/models.py:831
+#: order/models.py:937
msgid "Item"
msgstr ""
-#: order/models.py:832
+#: order/models.py:938
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:835
+#: order/models.py:941
msgid "Enter stock allocation quantity"
msgstr ""
+#: order/serializers.py:139
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Sale price currency"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
#: templates/attachment_delete.html:5
@@ -3091,16 +3060,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:180
-#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/order_base.html:188
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:199
+#: order/templates/order/purchase_order_detail.html:127
#: part/templates/part/category.html:217 part/templates/part/category.html:259
-#: stock/templates/stock/location.html:191 templates/js/stock.js:736
-#: templates/js/stock.js:1324
+#: part/templates/part/part_base.html:415
+#: stock/templates/stock/location.html:191 templates/js/stock.js:750
+#: templates/js/stock.js:1338
msgid "New Location"
msgstr ""
-#: order/templates/order/order_base.html:181
-#: order/templates/order/purchase_order_detail.html:101
+#: order/templates/order/order_base.html:200
+#: order/templates/order/purchase_order_detail.html:128
+#: part/templates/part/part_base.html:416
#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3253,7 +3228,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.js:205 templates/js/order.js:308
+#: templates/js/order.js:267 templates/js/order.js:375
msgid "Items"
msgstr ""
@@ -3277,7 +3252,6 @@ msgid "Purchase Order Attachments"
msgstr ""
#: order/templates/order/po_lineitem_delete.html:5
-#: order/templates/order/so_lineitem_delete.html:5
msgid "Are you sure you wish to delete this line item?"
msgstr ""
@@ -3295,40 +3269,52 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
-#: order/views.py:1410
+#: order/templates/order/purchase_order_detail.html:64
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:56
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:114
+#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/sales_order_detail.html:398
+msgid "Edit Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:110
+#: order/templates/order/sales_order_detail.html:408
+msgid "Delete Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:141
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/purchase_order_detail.html:169
+#: order/templates/order/sales_order_detail.html:233
msgid "Total"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:191
-#: order/templates/order/sales_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:218
+#: order/templates/order/sales_order_detail.html:256 templates/js/part.js:807
+#: templates/js/part.js:996
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:198
-#: order/templates/order/sales_order_detail.html:253
+#: order/templates/order/purchase_order_detail.html:225
+#: order/templates/order/sales_order_detail.html:263
msgid "Total price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:255
-#: order/templates/order/sales_order_detail.html:359
+#: order/templates/order/purchase_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:369
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:256
+#: order/templates/order/purchase_order_detail.html:283
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:261
+#: order/templates/order/purchase_order_detail.html:288
msgid "Receive line item"
msgstr ""
@@ -3343,7 +3329,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
-#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/models.py:326 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:157
#: part/templates/part/category_navbar.html:25
#: part/templates/part/category_navbar.html:32
@@ -3351,7 +3337,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:40
+#: users/models.py:41
msgid "Parts"
msgstr ""
@@ -3393,10 +3379,14 @@ msgstr ""
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100 templates/js/order.js:275
+#: order/templates/order/sales_order_base.html:100 templates/js/order.js:342
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_base.html:177
+msgid "Edit Sales Order"
+msgstr ""
+
#: order/templates/order/sales_order_cancel.html:8
#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
@@ -3412,69 +3402,69 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: order/templates/order/sales_order_detail.html:105 templates/js/bom.js:358
#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: order/templates/order/sales_order_detail.html:112 templates/js/build.js:611
#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: order/templates/order/sales_order_detail.html:113 templates/js/build.js:613
#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:176
+#: order/templates/order/sales_order_detail.html:186
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:216
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: order/templates/order/sales_order_detail.html:284 templates/js/build.js:676
#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:276
+#: order/templates/order/sales_order_detail.html:286
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:313
+#: order/templates/order/sales_order_detail.html:323
msgid "PO"
msgstr ""
-#: order/templates/order/sales_order_detail.html:343
+#: order/templates/order/sales_order_detail.html:353
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
+#: order/templates/order/sales_order_detail.html:356 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:349
+#: order/templates/order/sales_order_detail.html:359
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: order/templates/order/sales_order_detail.html:363 templates/js/build.js:732
#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:356
-#: order/templates/order/sales_order_detail.html:465
+#: order/templates/order/sales_order_detail.html:366
+#: order/templates/order/sales_order_detail.html:485
msgid "Calculate price"
msgstr ""
-#: order/templates/order/sales_order_detail.html:360
+#: order/templates/order/sales_order_detail.html:370
msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:471
+#: order/templates/order/sales_order_detail.html:491
msgid "Update Unit Price"
msgstr ""
@@ -3515,194 +3505,154 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:106
-msgid "Add Purchase Order Attachment"
-msgstr ""
-
-#: order/views.py:156
-msgid "Add Sales Order Attachment"
-msgstr ""
-
-#: order/views.py:348
-msgid "Create Sales Order"
-msgstr ""
-
-#: order/views.py:383
-msgid "Edit Purchase Order"
-msgstr ""
-
-#: order/views.py:403
-msgid "Edit Sales Order"
-msgstr ""
-
-#: order/views.py:419
+#: order/views.py:151
msgid "Cancel Order"
msgstr ""
-#: order/views.py:428 order/views.py:454
+#: order/views.py:160 order/views.py:186
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:431 order/views.py:457
+#: order/views.py:163 order/views.py:189
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:445
+#: order/views.py:177
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:471
+#: order/views.py:203
msgid "Issue Order"
msgstr ""
-#: order/views.py:480
+#: order/views.py:212
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:490
+#: order/views.py:222
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:501
+#: order/views.py:233
msgid "Complete Order"
msgstr ""
-#: order/views.py:517
+#: order/views.py:249
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:528
+#: order/views.py:260
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:538
+#: order/views.py:270
msgid "Ship Order"
msgstr ""
-#: order/views.py:554
+#: order/views.py:286
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:560
+#: order/views.py:292
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:339
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:804
+#: order/views.py:536
msgid "Receive Parts"
msgstr ""
-#: order/views.py:874
+#: order/views.py:606
msgid "Items received"
msgstr ""
-#: order/views.py:888
+#: order/views.py:620
msgid "No destination set"
msgstr ""
-#: order/views.py:933
+#: order/views.py:665
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:939
+#: order/views.py:671
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:945
+#: order/views.py:677
msgid "No lines specified"
msgstr ""
-#: order/views.py:1018
+#: order/views.py:750
msgid "Update prices"
msgstr ""
-#: order/views.py:1276
+#: order/views.py:1008
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1336
-msgid "Supplier part must be specified"
-msgstr ""
-
-#: order/views.py:1342
-msgid "Supplier must match for Part and Order"
-msgstr ""
-
-#: order/views.py:1473 order/views.py:1491
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/views.py:1507 order/views.py:1519
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/views.py:1512 order/views.py:1524
-msgid "Deleted line item"
-msgstr ""
-
-#: order/views.py:1537
+#: order/views.py:1061
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1582
+#: order/views.py:1106
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1598
+#: order/views.py:1122
msgid "Select line item"
msgstr ""
-#: order/views.py:1629
+#: order/views.py:1153
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1639
+#: order/views.py:1163
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1647
+#: order/views.py:1171
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1701
+#: order/views.py:1225
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1775
+#: order/views.py:1299
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1790
+#: order/views.py:1314
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1386
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1868
+#: order/views.py:1392
msgid "Price not found"
msgstr ""
-#: order/views.py:1871
+#: order/views.py:1395
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1876
+#: order/views.py:1400
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:138 part/models.py:72 part/models.py:747
+#: part/bom.py:138 part/models.py:72 part/models.py:756
#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3724,143 +3674,143 @@ msgstr ""
msgid "Error reading BOM file (incorrect row size)"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "File Format"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "Select output file format"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Cascading"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Download cascading / multi-level BOM"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Levels"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Select maximum number of BOM levels to export (0 = all levels)"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include Parameter Data"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include part parameters data in exported BOM"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include Stock Data"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include part stock data in exported BOM"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include Manufacturer Data"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include part manufacturer data in exported BOM"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include Supplier Data"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2191
+#: part/forms.py:106 part/models.py:2224
msgid "Parent Part"
msgstr ""
-#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:107 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr ""
-#: part/forms.py:129
+#: part/forms.py:113
msgid "Clear existing BOM items"
msgstr ""
-#: part/forms.py:135
+#: part/forms.py:119
msgid "Confirm BOM duplication"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "validate"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "BOM file"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "Select BOM file to upload"
msgstr ""
-#: part/forms.py:184
+#: part/forms.py:168
msgid "Related Part"
msgstr ""
-#: part/forms.py:203
+#: part/forms.py:175
msgid "Select part category"
msgstr ""
-#: part/forms.py:220
+#: part/forms.py:192
msgid "Duplicate all BOM data for this part"
msgstr ""
-#: part/forms.py:221
+#: part/forms.py:193
msgid "Copy BOM"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:198
msgid "Duplicate all parameter data for this part"
msgstr ""
-#: part/forms.py:227
+#: part/forms.py:199
msgid "Copy Parameters"
msgstr ""
-#: part/forms.py:232
+#: part/forms.py:204
msgid "Confirm part creation"
msgstr ""
-#: part/forms.py:237
+#: part/forms.py:209
msgid "Include category parameter templates"
msgstr ""
-#: part/forms.py:242
+#: part/forms.py:214
msgid "Include parent categories parameter templates"
msgstr ""
-#: part/forms.py:322
+#: part/forms.py:294
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:298
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2286
+#: part/forms.py:316 part/models.py:2323
msgid "Sub part"
msgstr ""
-#: part/forms.py:373
+#: part/forms.py:345
msgid "Input quantity for price calculation"
msgstr ""
@@ -3876,362 +3826,362 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2237
+#: part/models.py:86 part/models.py:2270
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:32
+#: part/models.py:87 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:39
+#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:448 part/models.py:460
+#: part/models.py:457 part/models.py:469
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:557
+#: part/models.py:566
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:561
+#: part/models.py:570
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:566
+#: part/models.py:575
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:645
+#: part/models.py:654
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:670 part/templates/part/detail.html:22
+#: part/models.py:679 part/templates/part/detail.html:22
msgid "Part name"
msgstr ""
-#: part/models.py:677
+#: part/models.py:686
msgid "Is Template"
msgstr ""
-#: part/models.py:678
+#: part/models.py:687
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:689
+#: part/models.py:698
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:690 part/templates/part/detail.html:60
+#: part/models.py:699 part/templates/part/detail.html:60
msgid "Variant Of"
msgstr ""
-#: part/models.py:696
+#: part/models.py:705
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:82
+#: part/models.py:710 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
-#: part/models.py:702
+#: part/models.py:711
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73
+#: part/models.py:718 part/models.py:2269 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:452
msgid "Category"
msgstr ""
-#: part/models.py:710
+#: part/models.py:719
msgid "Part category"
msgstr ""
-#: part/models.py:715 part/templates/part/detail.html:28
+#: part/models.py:724 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:87 templates/js/part.js:169
#: templates/js/part.js:296
msgid "IPN"
msgstr ""
-#: part/models.py:716
+#: part/models.py:725
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:722
+#: part/models.py:731
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199
+#: part/models.py:732 part/templates/part/detail.html:35 report/models.py:199
#: templates/js/part.js:173
msgid "Revision"
msgstr ""
-#: part/models.py:745
+#: part/models.py:754
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:792 part/templates/part/detail.html:97
+#: part/models.py:801 part/templates/part/detail.html:97
msgid "Default Supplier"
msgstr ""
-#: part/models.py:793
+#: part/models.py:802
msgid "Default supplier part"
msgstr ""
-#: part/models.py:800
+#: part/models.py:809
msgid "Default Expiry"
msgstr ""
-#: part/models.py:801
+#: part/models.py:810
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:806 part/templates/part/detail.html:113
+#: part/models.py:815 part/templates/part/detail.html:113
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:807
+#: part/models.py:816
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:814
+#: part/models.py:823
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:820
+#: part/models.py:829
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:835
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:832
+#: part/models.py:841
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:837
+#: part/models.py:846
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:842
+#: part/models.py:851
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:846 part/templates/part/detail.html:227
+#: part/models.py:855 part/templates/part/detail.html:227
#: templates/js/table_filters.js:21 templates/js/table_filters.js:65
-#: templates/js/table_filters.js:241 templates/js/table_filters.js:310
+#: templates/js/table_filters.js:246 templates/js/table_filters.js:315
msgid "Active"
msgstr ""
-#: part/models.py:847
+#: part/models.py:856
msgid "Is this part active?"
msgstr ""
-#: part/models.py:852
+#: part/models.py:861
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:857
+#: part/models.py:866
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "BOM checksum"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:863
+#: part/models.py:872
msgid "BOM checked by"
msgstr ""
-#: part/models.py:865
+#: part/models.py:874
msgid "BOM checked date"
msgstr ""
-#: part/models.py:869
+#: part/models.py:878
msgid "Creation User"
msgstr ""
-#: part/models.py:1608
+#: part/models.py:1617
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2063
+#: part/models.py:2088
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2080
+#: part/models.py:2105
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117
+#: part/models.py:2125 templates/js/part.js:717 templates/js/stock.js:117
msgid "Test Name"
msgstr ""
-#: part/models.py:2101
+#: part/models.py:2126
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2106
+#: part/models.py:2131
msgid "Test Description"
msgstr ""
-#: part/models.py:2107
+#: part/models.py:2132
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2112 templates/js/part.js:726
-#: templates/js/table_filters.js:227
+#: part/models.py:2137 templates/js/part.js:726
+#: templates/js/table_filters.js:232
msgid "Required"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2138
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2118 templates/js/part.js:734
+#: part/models.py:2143 templates/js/part.js:734
msgid "Requires Value"
msgstr ""
-#: part/models.py:2119
+#: part/models.py:2144
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2124 templates/js/part.js:741
+#: part/models.py:2149 templates/js/part.js:741
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2150
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2187
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2192
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2165
+#: part/models.py:2194
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2193 part/models.py:2242 part/models.py:2243
+#: part/models.py:2226 part/models.py:2275 part/models.py:2276
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Data"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2247 templates/InvenTree/settings/category.html:67
+#: part/models.py:2280 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2281
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2278
+#: part/models.py:2315
msgid "Select parent part"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2324
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2293
+#: part/models.py:2330
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2332 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2295
+#: part/models.py:2332
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2298
+#: part/models.py:2335
msgid "Overage"
msgstr ""
-#: part/models.py:2299
+#: part/models.py:2336
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2302
+#: part/models.py:2339
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2305
+#: part/models.py:2342
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "Checksum"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2348 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2312
+#: part/models.py:2349
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:287
+#: part/models.py:2354 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2318
+#: part/models.py:2355
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1859 part/views.py:1911
-#: stock/models.py:290
+#: part/models.py:2431 part/views.py:1736 part/views.py:1788
+#: stock/models.py:298
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2403 part/models.py:2405
+#: part/models.py:2440 part/models.py:2442
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2445
msgid "BOM Item"
msgstr ""
-#: part/models.py:2527
+#: part/models.py:2564
msgid "Part 1"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Part 2"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2563
+#: part/models.py:2600
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4247,14 +4197,6 @@ msgstr ""
msgid "Part Attachments"
msgstr ""
-#: part/templates/part/bom-delete.html:6
-msgid "Are you sure you want to delete this BOM item?"
-msgstr ""
-
-#: part/templates/part/bom-delete.html:8
-msgid "Deleting this entry will remove the BOM row from the following part"
-msgstr ""
-
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
@@ -4303,7 +4245,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:2154
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr ""
@@ -4319,8 +4261,8 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:590
-#: templates/js/stock.js:1313
+#: part/templates/part/bom.html:160 part/views.py:450
+#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr ""
@@ -4401,7 +4343,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:2564
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr ""
@@ -4461,11 +4403,12 @@ msgid "View grid display"
msgstr ""
#: part/templates/part/category.html:218
-#: stock/templates/stock/location.html:192 templates/js/stock.js:737
+#: stock/templates/stock/location.html:192 templates/js/stock.js:751
msgid "Create new location"
msgstr ""
#: part/templates/part/category.html:223 part/templates/part/category.html:253
+#: part/templates/part/part_base.html:378
msgid "New Category"
msgstr ""
@@ -4477,10 +4420,18 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:260 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1223
msgid "Create new Stock Location"
msgstr ""
+#: part/templates/part/category.html:279
+msgid "Select parent category"
+msgstr ""
+
+#: part/templates/part/category.html:286 part/views.py:2389
+msgid "Edit Part Category"
+msgstr ""
+
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4526,7 +4477,7 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:466
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr ""
@@ -4639,36 +4590,6 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:101
-msgid "Internal Price Information"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:19 part/views.py:2989
-msgid "Add Internal Price Break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:28 templates/403.html:5
-#: templates/403.html:11
-msgid "Permission Denied"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:31 templates/403.html:14
-msgid "You do not have permission to view this page."
-msgstr ""
-
-#: part/templates/part/internal_prices.html:59
-msgid "No internal price break information found"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:110
-msgid "Edit internal price break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:111
-msgid "Delete internal price break"
-msgstr ""
-
#: part/templates/part/manufacturer.html:11
msgid "Part Manufacturers"
msgstr ""
@@ -4678,7 +4599,7 @@ msgid "Delete manufacturer parts"
msgstr ""
#: part/templates/part/manufacturer.html:53
-#: part/templates/part/supplier.html:57
+#: part/templates/part/supplier.html:56
msgid "Create new manufacturer"
msgstr ""
@@ -4702,125 +4623,27 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
-msgid "Order Price Information"
+#: part/templates/part/navbar.html:77
+msgid "Prices"
msgstr ""
-#: part/templates/part/navbar.html:78
-msgid "Order Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
-#: part/templates/part/part_pricing.html:82
-msgid "Internal Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:107
-msgid "Sales Price Information"
-msgstr ""
-
-#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:109 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:112 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
+#: part/templates/part/navbar.html:117 part/templates/part/navbar.html:120
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:130 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:25
-#: part/templates/part/part_base.html:282
-msgid "Calculate"
-msgstr ""
-
-#: part/templates/part/order_prices.html:32
-msgid "Pricing ranges"
-msgstr ""
-
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/part_pricing.html:22
-msgid "Supplier Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:38
-#: part/templates/part/order_prices.html:63
-#: part/templates/part/order_prices.html:95
-#: part/templates/part/order_prices.html:109
-#: part/templates/part/part_pricing.html:26
-#: part/templates/part/part_pricing.html:52
-#: part/templates/part/part_pricing.html:85
-#: part/templates/part/part_pricing.html:100
-msgid "Unit Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:45
-#: part/templates/part/order_prices.html:70
-#: part/templates/part/order_prices.html:100
-#: part/templates/part/order_prices.html:114
-#: part/templates/part/part_pricing.html:32
-#: part/templates/part/part_pricing.html:58
-#: part/templates/part/part_pricing.html:89
-#: part/templates/part/part_pricing.html:104
-msgid "Total Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:53
-#: part/templates/part/part_pricing.html:40
-msgid "No supplier pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:129
-#: part/templates/part/part_pricing.html:48
-msgid "BOM Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:78
-#: part/templates/part/part_pricing.html:66
-msgid "Note: BOM pricing is incomplete for this part"
-msgstr ""
-
-#: part/templates/part/order_prices.html:85
-#: part/templates/part/part_pricing.html:73
-msgid "No BOM pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:123
-#: part/templates/part/part_pricing.html:113
-msgid "No pricing information is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:139
-msgid "Stock Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:147
-msgid "No stock pricing history is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:166
-#, python-format
-msgid "Single Price - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:178
-#, python-format
-msgid "Single Price Difference - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:190
-#, python-format
-msgid "Part Single Price - %(currency)s"
-msgstr ""
-
#: part/templates/part/params.html:17
msgid "Add new parameter"
msgstr ""
@@ -4841,8 +4664,8 @@ msgstr ""
msgid "Part List"
msgstr ""
-#: part/templates/part/part_base.html:26 templates/js/company.js:156
-#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161
+#: part/templates/part/part_base.html:26 templates/js/company.js:280
+#: templates/js/company.js:480 templates/js/part.js:84 templates/js/part.js:161
msgid "Inactive"
msgstr ""
@@ -4905,7 +4728,7 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131
+#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:132
msgid "Required for Build Orders"
msgstr ""
@@ -4926,10 +4749,86 @@ msgstr ""
msgid "Building"
msgstr ""
+#: part/templates/part/part_base.html:285 part/templates/part/prices.html:131
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:379
+msgid "Create New Part Category"
+msgstr ""
+
+#: part/templates/part/part_base.html:387
+msgid "New Parent"
+msgstr ""
+
+#: part/templates/part/part_base.html:435
+msgid "Edit Part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:27
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:31
+#: part/templates/part/prices.html:58 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:107
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:89
+#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:38
+#: part/templates/part/prices.html:65 part/templates/part/prices.html:95
+#: part/templates/part/prices.html:112
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:46
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:55
+#: part/templates/part/prices.html:235
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:73
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:80
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:113
+#: part/templates/part/prices.html:121
+msgid "No pricing information is available for this part."
+msgstr ""
+
#: part/templates/part/part_tests.html:17
msgid "Add Test Template"
msgstr ""
+#: part/templates/part/part_tests.html:61
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:79
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:91
+msgid "Delete Test Result Template"
+msgstr ""
+
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr ""
@@ -4964,12 +4863,98 @@ msgstr ""
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
-#: part/templates/part/related.html:18
-msgid "Add Related"
+#: part/templates/part/prices.html:12
+msgid "General Price Information"
msgstr ""
-#: part/templates/part/sale_prices.html:10
-msgid "Sell Price Information"
+#: part/templates/part/prices.html:22
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:28
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:29
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:56
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:104
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:105
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:127
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:146
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:147 part/templates/part/prices.html:167
+#: part/templates/part/prices.html:193 part/templates/part/prices.html:224
+#: part/templates/part/prices.html:251 part/templates/part/prices.html:279
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:172
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:180
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:192
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:206 part/views.py:2859
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:223
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:250
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:290
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:340
+#, python-format
+msgid "Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:352
+#, python-format
+msgid "Single Price Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:364
+#, python-format
+msgid "Part Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:464
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/related.html:18
+msgid "Add Related"
msgstr ""
#: part/templates/part/sales_orders.html:18
@@ -5043,216 +5028,180 @@ msgstr ""
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:164
-msgid "Add part attachment"
-msgstr ""
-
-#: part/views.py:217 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr ""
-
-#: part/views.py:221
-msgid "Part attachment updated"
-msgstr ""
-
-#: part/views.py:236
-msgid "Delete Part Attachment"
-msgstr ""
-
-#: part/views.py:244
-msgid "Deleted part attachment"
-msgstr ""
-
-#: part/views.py:253
-msgid "Create Test Template"
-msgstr ""
-
-#: part/views.py:280
-msgid "Edit Test Template"
-msgstr ""
-
-#: part/views.py:294
-msgid "Delete Test Template"
-msgstr ""
-
-#: part/views.py:301
+#: part/views.py:161
msgid "Set Part Category"
msgstr ""
-#: part/views.py:351
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:386
+#: part/views.py:246
msgid "Create Variant"
msgstr ""
-#: part/views.py:471
+#: part/views.py:331
msgid "Copied part"
msgstr ""
-#: part/views.py:525 part/views.py:663
+#: part/views.py:385 part/views.py:523
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:595
+#: part/views.py:455
msgid "Created new part"
msgstr ""
-#: part/views.py:763
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1092
+#: part/views.py:925
+msgid "None"
+msgstr ""
+
+#: part/views.py:984
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1194
-msgid "Upload Part Image"
-msgstr ""
-
-#: part/views.py:1200 part/views.py:1235
-msgid "Updated part image"
-msgstr ""
-
-#: part/views.py:1209
+#: part/views.py:1086
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1238
+#: part/views.py:1112
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:1115
msgid "Part image not found"
msgstr ""
-#: part/views.py:1249
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1284
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1314
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1335
+#: part/views.py:1212
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1356
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1367
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1501
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1862
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1887 part/views.py:1890
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr ""
-#: part/views.py:1896
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1934
+#: part/views.py:1811
msgid "Select a part"
msgstr ""
-#: part/views.py:1940
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1944
+#: part/views.py:1821
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2090
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2222
+#: part/views.py:2099
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2363
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2373
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2380
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2388
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2438
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2452
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2512
-msgid "Edit Part Category"
-msgstr ""
-
-#: part/views.py:2550
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2556
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2608
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2709
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2765
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2784
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2854
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2910
-msgid "Confim BOM item deletion"
+#: part/views.py:2792
+msgid "Added new price break"
msgstr ""
-#: part/views.py:2998
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3006
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5358,17 +5307,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1739
+#: stock/models.py:1759
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1745
+#: stock/models.py:1765
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:1012
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr ""
@@ -5380,287 +5329,287 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:212
+#: stock/api.py:211
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:280
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
+#: stock/forms.py:81 stock/forms.py:385 stock/models.py:513
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:419
+#: stock/forms.py:82 stock/forms.py:386
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:118
+#: stock/forms.py:85
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:169
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:173 stock/forms.py:349
+#: stock/forms.py:140 stock/forms.py:316
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:203 stock/forms.py:259
+#: stock/forms.py:170 stock/forms.py:226
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:75
+#: stock/forms.py:234 templates/js/table_filters.js:75
#: templates/js/table_filters.js:138
msgid "Include sublocations"
msgstr ""
-#: stock/forms.py:267
+#: stock/forms.py:234
msgid "Include stock items in sub locations"
msgstr ""
-#: stock/forms.py:302
+#: stock/forms.py:269
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:309
+#: stock/forms.py:276
msgid "Stock quantity to assign"
msgstr ""
-#: stock/forms.py:337
+#: stock/forms.py:304
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:347
+#: stock/forms.py:314
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/forms.py:375
+#: stock/forms.py:342
msgid "Destination stock location"
msgstr ""
-#: stock/forms.py:377
+#: stock/forms.py:344
msgid "Add note (required)"
msgstr ""
-#: stock/forms.py:381 stock/views.py:852 stock/views.py:1051
+#: stock/forms.py:348 stock/views.py:705 stock/views.py:904
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/forms.py:381
+#: stock/forms.py:348
msgid "Confirm movement of stock items"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set Default Location"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:52 stock/models.py:542
+#: stock/models.py:56 stock/models.py:550
msgid "Owner"
msgstr ""
-#: stock/models.py:53 stock/models.py:543
+#: stock/models.py:57 stock/models.py:551
msgid "Select Owner"
msgstr ""
-#: stock/models.py:271
+#: stock/models.py:279
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:307
+#: stock/models.py:315
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:317 stock/models.py:326
+#: stock/models.py:325 stock/models.py:334
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:318
+#: stock/models.py:326
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:340
+#: stock/models.py:348
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:346
+#: stock/models.py:354
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:361
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:395
+#: stock/models.py:403
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:412
msgid "Base part"
msgstr ""
-#: stock/models.py:413
+#: stock/models.py:421
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:426 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:421
+#: stock/models.py:429
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:428
+#: stock/models.py:436
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:433 stock/templates/stock/item_base.html:270
+#: stock/models.py:441 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:436
+#: stock/models.py:444
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:452
+#: stock/models.py:460
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:472
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:476
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:477
+#: stock/models.py:485
msgid "Source Build"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:487
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:490
+#: stock/models.py:498
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:493
+#: stock/models.py:501
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:499
+#: stock/models.py:507
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:514
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:529 stock/templates/stock/item_notes.html:13
+#: stock/models.py:537 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:538
+#: stock/models.py:546
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1006
+#: stock/models.py:1014
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1012
+#: stock/models.py:1020
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1018
+#: stock/models.py:1026
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1021
+#: stock/models.py:1029
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1024
+#: stock/models.py:1032
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1031
+#: stock/models.py:1039
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1197
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1679
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1716
+#: stock/models.py:1736
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1722
+#: stock/models.py:1742
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1740
+#: stock/models.py:1760
msgid "Test name"
msgstr ""
-#: stock/models.py:1746 templates/js/table_filters.js:217
+#: stock/models.py:1766 templates/js/table_filters.js:222
msgid "Test result"
msgstr ""
-#: stock/models.py:1752
+#: stock/models.py:1772
msgid "Test output value"
msgstr ""
-#: stock/models.py:1759
+#: stock/models.py:1779
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1785
msgid "Test notes"
msgstr ""
@@ -5850,6 +5799,10 @@ msgstr ""
msgid "No stocktake performed"
msgstr ""
+#: stock/templates/stock/item_base.html:499
+msgid "Edit Stock Status"
+msgstr ""
+
#: stock/templates/stock/item_childs.html:12
msgid "Child Stock Items"
msgstr ""
@@ -5909,6 +5862,19 @@ msgstr ""
msgid "Add Test Data"
msgstr ""
+#: stock/templates/stock/item_tests.html:86
+#: stock/templates/stock/item_tests.html:111
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:131
+msgid "Edit Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:145
+msgid "Delete Test Result"
+msgstr ""
+
#: stock/templates/stock/location.html:20
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
@@ -5957,7 +5923,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:97 users/models.py:41
+#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -5997,7 +5963,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1196
msgid "Convert Stock Item"
msgstr ""
@@ -6030,8 +5996,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
-#: stock/views.py:1830
+#: stock/views.py:230 stock/views.py:1175 stock/views.py:1297
+#: stock/views.py:1662
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -6039,208 +6005,188 @@ msgstr ""
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:265
-msgid "Add Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:311
-msgid "Edit Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:327
-msgid "Delete Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:343
+#: stock/views.py:264
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:273
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:297
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:385
+#: stock/views.py:306
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:396
+#: stock/views.py:317
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:407
+#: stock/views.py:328
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:345
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:444
-msgid "Add Test Result"
-msgstr ""
-
-#: stock/views.py:484
-msgid "Edit Test Result"
-msgstr ""
-
-#: stock/views.py:501
-msgid "Delete Test Result"
-msgstr ""
-
-#: stock/views.py:509
+#: stock/views.py:362
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:630
+#: stock/views.py:483
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:656
+#: stock/views.py:509
msgid "Install Stock Item"
msgstr ""
-#: stock/views.py:755
+#: stock/views.py:608
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:863
+#: stock/views.py:716
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:888
+#: stock/views.py:741
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Take"
msgstr ""
-#: stock/views.py:1001
+#: stock/views.py:854
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:187
+#: stock/views.py:854 users/models.py:188
msgid "Add"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:855
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:1031
+#: stock/views.py:884
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:1036
+#: stock/views.py:889
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:1043
+#: stock/views.py:896
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:1107
+#: stock/views.py:960
msgid "No action performed"
msgstr ""
-#: stock/views.py:1122
+#: stock/views.py:975
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:1137
+#: stock/views.py:990
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:1150
+#: stock/views.py:1003
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:1190
+#: stock/views.py:1043
msgid "No items were moved"
msgstr ""
-#: stock/views.py:1193
+#: stock/views.py:1046
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:1212
+#: stock/views.py:1065
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1222
-msgid "Edit Stock Item Status"
-msgstr ""
-
-#: stock/views.py:1245
+#: stock/views.py:1077
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1482
+#: stock/views.py:1314
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:327
+#: stock/views.py:1407 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1717
+#: stock/views.py:1549
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1799
+#: stock/views.py:1631
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1899
+#: stock/views.py:1731
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1912
+#: stock/views.py:1744
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1923
+#: stock/views.py:1755
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1930
+#: stock/views.py:1762
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1939
+#: stock/views.py:1771
msgid "Add Stock Tracking Entry"
msgstr ""
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
msgstr ""
@@ -6269,35 +6215,39 @@ msgstr ""
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:145
-msgid "Expired Stock"
+#: templates/InvenTree/index.html:131
+msgid "Depleted Stock"
msgstr ""
#: templates/InvenTree/index.html:146
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:147
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:192
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:185
+#: templates/InvenTree/index.html:193
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:214
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:207
+#: templates/InvenTree/index.html:215
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:237
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:230
+#: templates/InvenTree/index.html:238
msgid "Overdue Sales Orders"
msgstr ""
@@ -6582,24 +6532,12 @@ msgstr ""
msgid "copy version information"
msgstr ""
-#: templates/about.html:100 templates/js/modals.js:568
-#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54
-#: templates/modals.html:97
+#: templates/about.html:100 templates/js/modals.js:34
+#: templates/js/modals.js:677 templates/js/modals.js:970
+#: templates/modals.html:29 templates/modals.html:54 templates/modals.html:97
msgid "Close"
msgstr ""
-#: templates/attachment_table.html:6
-msgid "Add Attachment"
-msgstr ""
-
-#: templates/attachment_table.html:17
-msgid "Uploaded"
-msgstr ""
-
-#: templates/attachment_table.html:35
-msgid "Delete attachment"
-msgstr ""
-
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6616,6 +6554,22 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
+#: templates/js/attachment.js:16
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/attachment.js:56
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/attachment.js:69
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/attachment.js:76
+msgid "Delete attachment"
+msgstr ""
+
#: templates/js/barcode.js:8
msgid "Scan barcode data here using wedge scanner"
msgstr ""
@@ -6644,7 +6598,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:921
+#: templates/js/barcode.js:119 templates/js/modals.js:1030
msgid "Invalid server response"
msgstr ""
@@ -6744,7 +6698,7 @@ msgstr ""
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:372
+#: templates/js/bom.js:372 templates/js/bom.js:519
msgid "Delete BOM Item"
msgstr ""
@@ -6772,7 +6726,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/build.js:222 templates/js/order.js:382
+#: templates/js/build.js:222 templates/js/order.js:449
msgid "Location not specified"
msgstr ""
@@ -6798,7 +6752,7 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
-#: templates/js/stock.js:514 templates/js/stock.js:966
+#: templates/js/stock.js:514 templates/js/stock.js:980
msgid "Select"
msgstr ""
@@ -6810,45 +6764,69 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/company.js:74
+#: templates/js/company.js:45
+msgid "Edit Company"
+msgstr ""
+
+#: templates/js/company.js:66
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/company.js:143
msgid "Parts Supplied"
msgstr ""
-#: templates/js/company.js:83
+#: templates/js/company.js:152
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/company.js:96
+#: templates/js/company.js:165
msgid "No company information found"
msgstr ""
-#: templates/js/company.js:129
+#: templates/js/company.js:183
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/company.js:200
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/company.js:253
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/company.js:148 templates/js/company.js:347
+#: templates/js/company.js:272 templates/js/company.js:472
#: templates/js/part.js:68 templates/js/part.js:153
msgid "Template part"
msgstr ""
-#: templates/js/company.js:152 templates/js/company.js:351
+#: templates/js/company.js:276 templates/js/company.js:476
#: templates/js/part.js:72 templates/js/part.js:157
msgid "Assembled part"
msgstr ""
-#: templates/js/company.js:226
+#: templates/js/company.js:350
msgid "No parameters found"
msgstr ""
-#: templates/js/company.js:262
+#: templates/js/company.js:386
msgid "Edit parameter"
msgstr ""
-#: templates/js/company.js:263
+#: templates/js/company.js:387
msgid "Delete parameter"
msgstr ""
-#: templates/js/company.js:328
+#: templates/js/company.js:406
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/company.js:417
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/company.js:453
msgid "No supplier parts found"
msgstr ""
@@ -6876,6 +6854,83 @@ msgstr ""
msgid "Create filter"
msgstr ""
+#: templates/js/forms.js:278 templates/js/forms.js:291
+#: templates/js/forms.js:303 templates/js/forms.js:315
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/forms.js:279
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:292
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:304
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:316
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:583 templates/js/modals.js:1040
+msgid "No Response"
+msgstr ""
+
+#: templates/js/forms.js:584 templates/js/modals.js:1041
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/forms.js:590 templates/js/modals.js:1050
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/forms.js:591 templates/js/modals.js:1051
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/forms.js:597 templates/js/modals.js:1055
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/forms.js:598 templates/js/modals.js:1056
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/forms.js:604 templates/js/modals.js:1060
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/forms.js:605 templates/js/modals.js:1061
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/forms.js:611 templates/js/modals.js:1065
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/forms.js:612 templates/js/modals.js:1066
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/forms.js:618 templates/js/modals.js:1069
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/forms.js:788 templates/modals.html:21 templates/modals.html:47
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/forms.js:1161
+msgid "Searching"
+msgstr ""
+
+#: templates/js/forms.js:1301
+msgid "Clear input"
+msgstr ""
+
#: templates/js/label.js:10 templates/js/report.js:98
msgid "Select Stock Items"
msgstr ""
@@ -6916,112 +6971,102 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:265
-msgid "Waiting for server..."
-msgstr ""
-
-#: templates/js/modals.js:424
-msgid "Show Error Information"
-msgstr ""
-
-#: templates/js/modals.js:491 templates/modals.html:76
-msgid "Accept"
-msgstr ""
-
-#: templates/js/modals.js:492 templates/modals.html:75
+#: templates/js/modals.js:59 templates/js/modals.js:105
+#: templates/js/modals.js:601 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:556
-msgid "Loading Data"
-msgstr ""
-
-#: templates/js/modals.js:567 templates/js/modals.js:860
+#: templates/js/modals.js:60 templates/js/modals.js:104
+#: templates/js/modals.js:676 templates/js/modals.js:969
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:103
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/modals.js:374
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/modals.js:533
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/modals.js:600 templates/modals.html:76
+msgid "Accept"
+msgstr ""
+
+#: templates/js/modals.js:665
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/modals.js:920
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:920
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:824
+#: templates/js/modals.js:933
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:921
+#: templates/js/modals.js:1030
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:931
-msgid "No Response"
-msgstr ""
-
-#: templates/js/modals.js:932
-msgid "No response from the InvenTree server"
-msgstr ""
-
-#: templates/js/modals.js:936
+#: templates/js/modals.js:1045
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:937
+#: templates/js/modals.js:1046
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:941
-msgid "Error 401: Not Authenticated"
+#: templates/js/model_renderers.js:21
+msgid "Company ID"
msgstr ""
-#: templates/js/modals.js:942
-msgid "Authentication credentials not supplied"
+#: templates/js/model_renderers.js:63
+msgid "Location ID"
msgstr ""
-#: templates/js/modals.js:946
-msgid "Error 403: Permission Denied"
+#: templates/js/model_renderers.js:90
+msgid "Part ID"
msgstr ""
-#: templates/js/modals.js:947
-msgid "You do not have the required permissions to access this function"
+#: templates/js/model_renderers.js:126
+msgid "Category ID"
msgstr ""
-#: templates/js/modals.js:951
-msgid "Error 404: Resource Not Found"
+#: templates/js/model_renderers.js:150
+msgid "Supplier Part ID"
msgstr ""
-#: templates/js/modals.js:952
-msgid "The requested resource could not be located on the server"
+#: templates/js/order.js:31
+msgid "Create Sales Order"
msgstr ""
-#: templates/js/modals.js:956
-msgid "Error 408: Timeout"
-msgstr ""
-
-#: templates/js/modals.js:957
-msgid "Connection timeout while requesting data from server"
-msgstr ""
-
-#: templates/js/modals.js:960
-msgid "Error requesting form data"
-msgstr ""
-
-#: templates/js/order.js:138
+#: templates/js/order.js:200
msgid "No purchase orders found"
msgstr ""
-#: templates/js/order.js:162 templates/js/order.js:257
+#: templates/js/order.js:224 templates/js/order.js:319
msgid "Order is overdue"
msgstr ""
-#: templates/js/order.js:234
+#: templates/js/order.js:296
msgid "No sales orders found"
msgstr ""
-#: templates/js/order.js:343
+#: templates/js/order.js:333
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/order.js:410
msgid "No sales order allocations found"
msgstr ""
@@ -7061,11 +7106,11 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:476 templates/js/table_filters.js:323
+#: templates/js/part.js:476 templates/js/table_filters.js:328
msgid "Low stock"
msgstr ""
-#: templates/js/part.js:660 templates/js/stock.js:990
+#: templates/js/part.js:660 templates/js/stock.js:1004
msgid "Path"
msgstr ""
@@ -7085,7 +7130,22 @@ msgstr ""
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/part.js:806
+#: templates/js/part.js:786
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/part.js:839
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:840
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:959
msgid "Single Price Difference"
msgstr ""
@@ -7263,75 +7323,75 @@ msgstr ""
msgid "Stocktake"
msgstr ""
-#: templates/js/stock.js:853
+#: templates/js/stock.js:867
msgid "Stock Status"
msgstr ""
-#: templates/js/stock.js:868
+#: templates/js/stock.js:882
msgid "Set Stock Status"
msgstr ""
-#: templates/js/stock.js:882
+#: templates/js/stock.js:896
msgid "Select Status Code"
msgstr ""
-#: templates/js/stock.js:883
+#: templates/js/stock.js:897
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1022
+#: templates/js/stock.js:1036
msgid "Invalid date"
msgstr ""
-#: templates/js/stock.js:1069
+#: templates/js/stock.js:1083
msgid "Location no longer exists"
msgstr ""
-#: templates/js/stock.js:1088
+#: templates/js/stock.js:1102
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/stock.js:1107
+#: templates/js/stock.js:1121
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/stock.js:1125
+#: templates/js/stock.js:1139
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/stock.js:1148
+#: templates/js/stock.js:1162
msgid "Added"
msgstr ""
-#: templates/js/stock.js:1156
+#: templates/js/stock.js:1170
msgid "Removed"
msgstr ""
-#: templates/js/stock.js:1188
+#: templates/js/stock.js:1202
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1200
+#: templates/js/stock.js:1214
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1201
+#: templates/js/stock.js:1215
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1325
+#: templates/js/stock.js:1339
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1366
+#: templates/js/stock.js:1380
msgid "No installed items"
msgstr ""
-#: templates/js/stock.js:1389
+#: templates/js/stock.js:1403
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1417
+#: templates/js/stock.js:1431
msgid "Uninstall Stock Item"
msgstr ""
@@ -7352,7 +7412,7 @@ msgid "Include locations"
msgstr ""
#: templates/js/table_filters.js:86 templates/js/table_filters.js:87
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:305
msgid "Include subcategories"
msgstr ""
@@ -7385,7 +7445,7 @@ msgstr ""
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:290
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:295
msgid "Active parts"
msgstr ""
@@ -7457,43 +7517,51 @@ msgstr ""
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:236
+#: templates/js/table_filters.js:211
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/table_filters.js:212
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/table_filters.js:241
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
+#: templates/js/table_filters.js:265 templates/js/table_filters.js:282
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:306
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:305
+#: templates/js/table_filters.js:310
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:311
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:311
+#: templates/js/table_filters.js:316
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:319
+#: templates/js/table_filters.js:324
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:335
+#: templates/js/table_filters.js:340
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:347
+#: templates/js/table_filters.js:352
msgid "Purchasable"
msgstr ""
@@ -7550,10 +7618,6 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:47
-msgid "Form errors exist"
-msgstr ""
-
#: templates/navbar.html:13
msgid "Toggle navigation"
msgstr ""
@@ -7570,7 +7634,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:38
+#: templates/navbar.html:77 users/models.py:39
msgid "Admin"
msgstr ""
@@ -7790,35 +7854,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:174
+#: users/models.py:175
msgid "Permission set"
msgstr ""
-#: users/models.py:182
+#: users/models.py:183
msgid "Group"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "View"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "Permission to view items"
msgstr ""
-#: users/models.py:187
+#: users/models.py:188
msgid "Permission to add items"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Change"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:191
+#: users/models.py:192
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 5fb994a1e8..8ffaee4eda 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-01 22:35+0000\n"
-"PO-Revision-Date: 2021-07-01 22:38\n"
+"POT-Creation-Date: 2021-07-03 12:15+0000\n"
+"PO-Revision-Date: 2021-07-03 12:44\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -29,14 +29,14 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: InvenTree/fields.py:84
+#: InvenTree/fields.py:99
msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
-#: order/forms.py:75 part/forms.py:134
+#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
+#: order/forms.py:74 part/forms.py:118 templates/js/forms.js:486
msgid "Confirm"
msgstr ""
@@ -77,8 +77,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
-#: stock/views.py:1795
+#: InvenTree/helpers.py:403 order/models.py:311 order/models.py:421
+#: stock/views.py:1627
msgid "Invalid quantity provided"
msgstr ""
@@ -106,49 +106,53 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1758
+#: InvenTree/models.py:61 stock/models.py:1778
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:60
+#: InvenTree/models.py:62
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:62 templates/attachment_table.html:16
+#: InvenTree/models.py:64 templates/js/attachment.js:52
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:62
+#: InvenTree/models.py:64
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2043
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1179
+#: templates/js/stock.js:1193
msgid "User"
msgstr ""
-#: InvenTree/models.py:72
+#: InvenTree/models.py:74
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396
-#: label/models.py:102 part/models.py:671 part/models.py:2163
+#: InvenTree/models.py:102
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:414
+#: label/models.py:103 part/models.py:680 part/models.py:2192
#: part/templates/part/params.html:27 report/models.py:180
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/company.js:235 templates/js/part.js:118
-#: templates/js/part.js:642 templates/js/stock.js:972
+#: templates/js/company.js:359 templates/js/part.js:118
+#: templates/js/part.js:642 templates/js/stock.js:986
msgid "Name"
msgstr ""
-#: InvenTree/models.py:114 build/models.py:135
-#: build/templates/build/detail.html:21 company/models.py:339
-#: company/models.py:532 company/templates/company/detail.html:27
+#: InvenTree/models.py:125 build/models.py:139
+#: build/templates/build/detail.html:21 company/models.py:353
+#: company/models.py:554 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
-#: part/models.py:695 part/templates/part/detail.html:54
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:110
+#: order/models.py:154 order/templates/order/purchase_order_detail.html:174
+#: part/models.py:704 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
#: report/templates/report/inventree_build_order_base.html:118
@@ -156,39 +160,43 @@ msgstr ""
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
#: templates/js/build.js:834 templates/js/build.js:1102
-#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
+#: templates/js/company.js:125 templates/js/order.js:245
+#: templates/js/order.js:347 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
-#: templates/js/stock.js:557 templates/js/stock.js:984
-#: templates/js/stock.js:1029
+#: templates/js/stock.js:557 templates/js/stock.js:998
+#: templates/js/stock.js:1043
msgid "Description"
msgstr ""
-#: InvenTree/models.py:115
+#: InvenTree/models.py:126
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:123
+#: InvenTree/models.py:134
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:504
-msgid "English"
+#: InvenTree/serializers.py:52
+msgid "Must be a valid number"
msgstr ""
#: InvenTree/settings.py:505
-msgid "French"
+msgid "English"
msgstr ""
#: InvenTree/settings.py:506
-msgid "German"
+msgid "French"
msgstr ""
#: InvenTree/settings.py:507
-msgid "Polish"
+msgid "German"
msgstr ""
#: InvenTree/settings.py:508
+msgid "Polish"
+msgstr ""
+
+#: InvenTree/settings.py:509
msgid "Turkish"
msgstr ""
@@ -446,50 +454,48 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
+#: build/templates/build/detail.html:121
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:881 templates/js/order.js:200
-#: templates/js/order.js:298
+#: templates/js/build.js:881 templates/js/order.js:262
+#: templates/js/order.js:365
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:225
+#: build/forms.py:43 build/models.py:229
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1354
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:31 common/models.py:741
-#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
-#: order/forms.py:289 order/models.py:613 order/models.py:835
-#: order/templates/order/order_wizard/match_parts.html:30
+#: company/forms.py:124 company/templates/company/supplier_part_pricing.html:79
+#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:702
+#: order/models.py:941 order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/purchase_order_detail.html:179
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:162
-#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
-#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
-#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:203
-#: part/templates/part/part_pricing.html:16
-#: part/templates/part/sale_prices.html:85
+#: order/templates/order/purchase_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:80
+#: order/templates/order/sales_order_detail.html:87
+#: order/templates/order/sales_order_detail.html:172
+#: order/templates/order/sales_order_detail.html:244 part/forms.py:314
+#: part/forms.py:344 part/forms.py:360 part/forms.py:376 part/models.py:2330
+#: part/templates/part/part_pricing.html:16 part/templates/part/prices.html:377
+#: part/templates/part/prices.html:474
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308
+#: stock/forms.py:142 stock/forms.py:275
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
-#: templates/js/build.js:1112 templates/js/order.js:393
-#: templates/js/part.js:796 templates/js/stock.js:1164
-#: templates/js/stock.js:1383
+#: templates/js/build.js:1112 templates/js/model_renderers.js:43
+#: templates/js/order.js:460 templates/js/part.js:827 templates/js/part.js:949
+#: templates/js/part.js:1005 templates/js/stock.js:1178
+#: templates/js/stock.js:1397
msgid "Quantity"
msgstr ""
@@ -501,7 +507,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:114 stock/forms.py:85
msgid "Serial Numbers"
msgstr ""
@@ -530,12 +536,12 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: stock/forms.py:347 stock/templates/stock/item_base.html:285
+#: stock/forms.py:314 stock/templates/stock/item_base.html:285
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:586 templates/js/order.js:378
-#: templates/js/stock.js:643 templates/js/stock.js:1056
+#: templates/js/build.js:586 templates/js/order.js:445
+#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr ""
@@ -544,13 +550,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:465
+#: build/templates/build/detail.html:59 order/models.py:545
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:868
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:630 templates/js/stock.js:1133
-#: templates/js/stock.js:1399
+#: templates/js/order.js:249 templates/js/order.js:352
+#: templates/js/stock.js:630 templates/js/stock.js:1147
+#: templates/js/stock.js:1413
msgid "Status"
msgstr ""
@@ -582,60 +588,60 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:66 build/templates/build/build_base.html:9
+#: build/models.py:70 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:195
msgid "Build Order"
msgstr ""
-#: build/models.py:67 build/templates/build/index.html:8
+#: build/models.py:71 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
-#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:191
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
+#: templates/InvenTree/settings/tabs.html:34 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:127
+#: build/models.py:131
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:98 order/models.py:615
-#: order/templates/order/purchase_order_detail.html:174
-#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
+#: build/models.py:132 order/models.py:242 order/models.py:529
+#: order/models.py:709 order/templates/order/purchase_order_detail.html:201
+#: order/templates/order/sales_order_detail.html:239 part/models.py:2339
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr ""
-#: build/models.py:138
+#: build/models.py:142
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:147 build/templates/build/build_base.html:163
+#: build/models.py:151 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr ""
-#: build/models.py:148
+#: build/models.py:152
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:153 build/templates/build/auto_allocate.html:16
+#: build/models.py:157 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:657 order/models.py:712
+#: build/templates/build/detail.html:26 company/models.py:689
+#: order/models.py:755 order/models.py:814
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:132
+#: order/templates/order/purchase_order_detail.html:159
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:214 part/models.py:321
-#: part/models.py:1975 part/models.py:1987 part/models.py:2002
-#: part/models.py:2020 part/models.py:2095 part/models.py:2191
-#: part/models.py:2277 part/templates/part/part_app_base.html:8
+#: order/templates/order/sales_order_detail.html:224 part/models.py:325
+#: part/models.py:1988 part/models.py:2004 part/models.py:2023
+#: part/models.py:2041 part/models.py:2120 part/models.py:2224
+#: part/models.py:2314 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
@@ -644,222 +650,222 @@ msgstr ""
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
#: templates/js/build.js:552 templates/js/build.js:839
-#: templates/js/build.js:1079 templates/js/company.js:140
-#: templates/js/company.js:339 templates/js/part.js:241
+#: templates/js/build.js:1079 templates/js/company.js:264
+#: templates/js/company.js:464 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
-#: templates/js/stock.js:1371
+#: templates/js/stock.js:1385
msgid "Part"
msgstr ""
-#: build/models.py:161
+#: build/models.py:165
msgid "Select part to build"
msgstr ""
-#: build/models.py:166
+#: build/models.py:170
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:170
+#: build/models.py:174
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:175
+#: build/models.py:179
msgid "Source Location"
msgstr ""
-#: build/models.py:179
+#: build/models.py:183
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:184
+#: build/models.py:188
msgid "Destination Location"
msgstr ""
-#: build/models.py:188
+#: build/models.py:192
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:192
+#: build/models.py:196
msgid "Build Quantity"
msgstr ""
-#: build/models.py:195
+#: build/models.py:199
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:199
+#: build/models.py:203
msgid "Completed items"
msgstr ""
-#: build/models.py:201
+#: build/models.py:205
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:205 part/templates/part/part_base.html:167
+#: build/models.py:209 part/templates/part/part_base.html:167
msgid "Build Status"
msgstr ""
-#: build/models.py:209
+#: build/models.py:213
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:462
+#: build/models.py:217 stock/models.py:470
msgid "Batch Code"
msgstr ""
-#: build/models.py:217
+#: build/models.py:221
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:104 part/models.py:867
-#: part/templates/part/detail.html:126 templates/js/order.js:293
+#: build/models.py:224 order/models.py:158 part/models.py:876
+#: part/templates/part/detail.html:126 templates/js/order.js:360
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:471
+#: build/models.py:228 order/models.py:551
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:217 templates/js/build.js:886
+#: build/models.py:232 order/models.py:284 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
-#: build/models.py:234
+#: build/models.py:238
msgid "completed by"
msgstr ""
-#: build/models.py:242
+#: build/models.py:246
msgid "Issued by"
msgstr ""
-#: build/models.py:243
+#: build/models.py:247
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:118
+#: build/models.py:255 build/templates/build/build_base.html:184
+#: build/templates/build/detail.html:105 order/models.py:172
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:871
+#: order/templates/order/sales_order_base.html:140 part/models.py:880
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:252
+#: build/models.py:256
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:257 build/templates/build/detail.html:91
+#: build/models.py:261 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
#: company/templates/company/manufacturer_part_detail.html:28
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:456 stock/templates/stock/item_base.html:345
+#: stock/models.py:464 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:458
+#: build/models.py:262 part/models.py:738 stock/models.py:466
msgid "Link to external URL"
msgstr ""
-#: build/models.py:262 build/templates/build/navbar.html:53
-#: company/models.py:132 company/models.py:539
+#: build/models.py:266 build/templates/build/navbar.html:53
+#: company/models.py:141 company/models.py:561
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:122
-#: order/models.py:617 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:176
+#: order/models.py:711 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/purchase_order_detail.html:243
-#: order/templates/order/sales_order_detail.html:309
+#: order/templates/order/purchase_order_detail.html:270
+#: order/templates/order/sales_order_detail.html:319
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:145
+#: order/templates/order/so_navbar.html:36 part/models.py:865
+#: part/templates/part/navbar.html:133
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
+#: stock/forms.py:140 stock/forms.py:284 stock/forms.py:316 stock/forms.py:344
+#: stock/models.py:536 stock/models.py:1678 stock/models.py:1784
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:713
msgid "Notes"
msgstr ""
-#: build/models.py:263
+#: build/models.py:267
msgid "Extra build notes"
msgstr ""
-#: build/models.py:740
+#: build/models.py:744
msgid "No build output specified"
msgstr ""
-#: build/models.py:743
+#: build/models.py:747
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:746
+#: build/models.py:750
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1152
+#: build/models.py:1160
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1177
+#: build/models.py:1185
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1181
+#: build/models.py:1189
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:809
+#: build/models.py:1196 order/models.py:915
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:812
+#: build/models.py:1200 order/models.py:918
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1204
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1264
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1316 stock/templates/stock/item_base.html:317
+#: build/models.py:1324 stock/templates/stock/item_base.html:317
#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1317
+#: build/models.py:1325
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1333 stock/templates/stock/item_base.html:8
+#: build/models.py:1341 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
#: templates/js/build.js:211 templates/js/build.js:929
-#: templates/js/order.js:366 templates/js/order.js:371
-#: templates/js/stock.js:1115
+#: templates/js/order.js:433 templates/js/order.js:438
+#: templates/js/stock.js:1129
msgid "Stock Item"
msgstr ""
-#: build/models.py:1334
+#: build/models.py:1342
msgid "Source stock item"
msgstr ""
-#: build/models.py:1347
+#: build/models.py:1355
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1355
+#: build/models.py:1363
msgid "Install into"
msgstr ""
-#: build/models.py:1356
+#: build/models.py:1364
msgid "Destination stock item"
msgstr ""
@@ -893,7 +899,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:724
#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -912,23 +918,52 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:160
+#: order/templates/order/sales_order_detail.html:85
+#: order/templates/order/sales_order_detail.html:170
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:450 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:570
+#: stock/models.py:458 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570 templates/js/model_renderers.js:41
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
-#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:124
+#: part/templates/part/navbar.html:127 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
+#: build/templates/build/attachments.html:51
+#: order/templates/order/so_attachments.html:79
+#: part/templates/part/attachments.html:81
+#: stock/templates/stock/item_attachments.html:81
+#: templates/attachment_table.html:6
+msgid "Add Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:69
+#: order/templates/order/so_attachments.html:52
+#: part/templates/part/attachments.html:35
+#: stock/templates/stock/item_attachments.html:49
+msgid "Edit Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:76
+#: order/templates/order/so_attachments.html:58
+#: part/templates/part/attachments.html:44
+#: stock/templates/stock/item_attachments.html:58
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/attachments.html:77
+#: order/templates/order/so_attachments.html:59
+#: part/templates/part/attachments.html:45
+#: stock/templates/stock/item_attachments.html:59
+msgid "Delete Attachment"
+msgstr ""
+
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
msgstr ""
@@ -989,8 +1024,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
#: order/templates/order/sales_order_base.html:88
-#: templates/js/table_filters.js:245 templates/js/table_filters.js:264
-#: templates/js/table_filters.js:281
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:269
+#: templates/js/table_filters.js:286
msgid "Overdue"
msgstr ""
@@ -1036,13 +1071,13 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:710
+#: build/templates/build/detail.html:84 order/models.py:812
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:279 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:279 templates/js/order.js:307
msgid "Sales Order"
msgstr ""
@@ -1183,10 +1218,10 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
-#: order/templates/order/purchase_order_detail.html:239
-#: order/templates/order/receive_parts.html:25 stock/forms.py:169
-#: stock/forms.py:375
+#: build/templates/build/detail.html:46 order/forms.py:88 order/models.py:771
+#: order/templates/order/purchase_order_detail.html:266
+#: order/templates/order/receive_parts.html:25 stock/forms.py:136
+#: stock/forms.py:342
msgid "Destination"
msgstr ""
@@ -1196,7 +1231,7 @@ msgstr ""
#: build/templates/build/detail.html:70
#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638
-#: templates/js/stock.js:1406 templates/js/table_filters.js:112
+#: templates/js/stock.js:1420 templates/js/table_filters.js:112
#: templates/js/table_filters.js:206
msgid "Batch"
msgstr ""
@@ -1251,7 +1286,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
-#: templates/js/stock.js:1044
+#: templates/js/stock.js:1058
msgid "Details"
msgstr ""
@@ -1287,7 +1322,6 @@ msgstr ""
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487
-#: stock/templates/stock/item_base.html:497
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1316,7 +1350,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/views.py:1821
+#: build/views.py:184 stock/views.py:1653
msgid "Serial numbers already exist"
msgstr ""
@@ -1332,7 +1366,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:281 build/views.py:371 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:346
msgid "Check the confirmation box"
msgstr ""
@@ -1429,31 +1463,6 @@ msgstr ""
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1070
-msgid "Add Build Order Attachment"
-msgstr ""
-
-#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
-#: stock/views.py:277
-msgid "Added attachment"
-msgstr ""
-
-#: build/views.py:1119 order/views.py:196 order/views.py:217
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/views.py:1129 order/views.py:200 order/views.py:221
-msgid "Attachment updated"
-msgstr ""
-
-#: build/views.py:1139 order/views.py:236 order/views.py:250
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
-msgid "Deleted attachment"
-msgstr ""
-
#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1470,7 +1479,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/attachment_table.html:15
+#: common/forms.py:34 templates/js/attachment.js:42
msgid "File"
msgstr ""
@@ -1503,7 +1512,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:72 company/models.py:94 company/models.py:95
+#: common/models.py:72 company/models.py:99 company/models.py:100
msgid "Company name"
msgstr ""
@@ -1607,9 +1616,9 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
-#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
-#: templates/js/table_filters.js:315
+#: common/models.py:160 part/models.py:2226 part/templates/part/detail.html:160
+#: report/models.py:186 stock/forms.py:226 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:320
msgid "Template"
msgstr ""
@@ -1617,8 +1626,8 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
+#: common/models.py:167 part/models.py:828 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:128 templates/js/table_filters.js:332
msgid "Assembly"
msgstr ""
@@ -1626,8 +1635,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:331
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:336
msgid "Component"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:845 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
@@ -1643,8 +1652,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:339
+#: common/models.py:188 part/models.py:850 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:344
msgid "Salable"
msgstr ""
@@ -1652,8 +1661,8 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
+#: common/models.py:195 part/models.py:840 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:348
msgid "Trackable"
msgstr ""
@@ -1661,7 +1670,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:860 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -1858,13 +1867,12 @@ msgstr ""
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:742 company/forms.py:190
+#: common/models.py:742 company/forms.py:125
msgid "Price break quantity"
msgstr ""
-#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
-#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
+#: templates/js/part.js:832
msgid "Price"
msgstr ""
@@ -1894,16 +1902,16 @@ msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:605
+#: order/templates/order/po_navbar.html:22 order/views.py:337
#: part/templates/part/bom_upload/upload_file.html:27
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:621
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:338 part/templates/part/bom_upload/select_fields.html:58
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr ""
@@ -1928,269 +1936,277 @@ msgstr ""
msgid "Previous Step"
msgstr ""
-#: company/forms.py:37 company/models.py:142
-#: company/templates/company/detail.html:42
-msgid "Currency"
-msgstr ""
-
-#: company/forms.py:38 company/models.py:144
-msgid "Default currency used for this company"
-msgstr ""
-
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:26 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:27 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:132 templates/js/part.js:787
+#: company/forms.py:67 templates/js/part.js:940
msgid "Single Price"
msgstr ""
-#: company/forms.py:133
+#: company/forms.py:68
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:141 company/models.py:321
+#: company/forms.py:76 company/models.py:335
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:147 company/models.py:328
+#: company/forms.py:82 company/models.py:342
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:149 company/models.py:327
+#: company/forms.py:84 company/models.py:341
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:162 part/bom.py:171
-#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408
+#: order/templates/order/purchase_order_detail.html:189 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:305 templates/js/company.js:533
msgid "MPN"
msgstr ""
-#: company/models.py:99
+#: company/models.py:104
msgid "Company description"
msgstr ""
-#: company/models.py:100
+#: company/models.py:105
msgid "Description of the company"
msgstr ""
-#: company/models.py:104 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:33 templates/js/company.js:60
+#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:129
msgid "Website"
msgstr ""
-#: company/models.py:104
+#: company/models.py:112
msgid "Company website URL"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:77
+#: company/models.py:116 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:108
+#: company/models.py:117
msgid "Company address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:120
msgid "Phone number"
msgstr ""
-#: company/models.py:112
+#: company/models.py:121
msgid "Contact phone number"
msgstr ""
-#: company/models.py:115 company/templates/company/company_base.html:91
+#: company/models.py:124 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:115
+#: company/models.py:124
msgid "Contact email address"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:98
+#: company/models.py:127 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:119
+#: company/models.py:128
msgid "Point of contact"
msgstr ""
-#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:102 part/models.py:728
+#: company/models.py:130 company/models.py:347 company/models.py:548
+#: order/models.py:156 part/models.py:737
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/company.js:188 templates/js/company.js:419
+#: templates/js/company.js:312 templates/js/company.js:544
#: templates/js/part.js:498
msgid "Link"
msgstr ""
-#: company/models.py:121
+#: company/models.py:130
msgid "Link to external company information"
msgstr ""
-#: company/models.py:129 part/models.py:738
+#: company/models.py:138 part/models.py:747
msgid "Image"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "is customer"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "is supplier"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "is manufacturer"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:403
+#: company/models.py:151 company/serializers.py:259
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:154
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:319 company/models.py:519 stock/models.py:411
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1603
+#: company/models.py:323 company/models.py:523 order/views.py:1127
msgid "Select part"
msgstr ""
-#: company/models.py:320 company/templates/company/detail.html:57
+#: company/models.py:334 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
#: part/bom.py:241 stock/templates/stock/item_base.html:352
-#: templates/js/company.js:44 templates/js/company.js:165
-#: templates/js/company.js:390
+#: templates/js/company.js:113 templates/js/company.js:289
+#: templates/js/company.js:515
msgid "Manufacturer"
msgstr ""
-#: company/models.py:334
+#: company/models.py:348
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:340
+#: company/models.py:354
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:390 company/models.py:520
+#: company/models.py:408 company/models.py:542
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:362
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:397
+#: company/models.py:415
msgid "Parameter name"
msgstr ""
-#: company/models.py:403 part/templates/part/params.html:28
+#: company/models.py:421 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
-#: templates/js/company.js:241 templates/js/stock.js:137
+#: stock/models.py:1771 templates/InvenTree/settings/header.html:8
+#: templates/js/company.js:365 templates/js/stock.js:137
msgid "Value"
msgstr ""
-#: company/models.py:404
+#: company/models.py:422
msgid "Parameter value"
msgstr ""
-#: company/models.py:410 part/models.py:813 part/models.py:2165
+#: company/models.py:428 part/models.py:822 part/models.py:2194
#: part/templates/part/detail.html:106 part/templates/part/params.html:29
-#: templates/js/company.js:247
+#: templates/js/company.js:371
msgid "Units"
msgstr ""
-#: company/models.py:411
+#: company/models.py:429
msgid "Parameter units"
msgstr ""
-#: company/models.py:507 company/templates/company/detail.html:62
+#: company/models.py:529 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:256
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
-#: templates/js/company.js:48 templates/js/company.js:364
-#: templates/js/order.js:170
+#: templates/js/company.js:117 templates/js/company.js:489
+#: templates/js/order.js:232
msgid "Supplier"
msgstr ""
-#: company/models.py:508
+#: company/models.py:530
msgid "Select supplier"
msgstr ""
-#: company/models.py:513 company/templates/company/supplier_part_base.html:88
+#: company/models.py:535 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:153 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:180 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:514
+#: company/models.py:536
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:521
+#: company/models.py:543
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:527
+#: company/models.py:549
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:533
+#: company/models.py:555
msgid "Supplier part description"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part_base.html:116
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305
+#: company/models.py:560 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2342
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "base cost"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:427 stock/templates/stock/item_base.html:310
-#: templates/js/stock.js:695
+#: company/models.py:566 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:435 stock/templates/stock/item_base.html:310
+#: templates/js/stock.js:709
msgid "Packaging"
msgstr ""
-#: company/models.py:544
+#: company/models.py:566
msgid "Part packaging"
msgstr ""
-#: company/models.py:546 part/models.py:1608
+#: company/models.py:568 part/models.py:1617
msgid "multiple"
msgstr ""
-#: company/models.py:546
+#: company/models.py:568
msgid "Order multiple"
msgstr ""
+#: company/serializers.py:68
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:69
+msgid "Currency Code"
+msgstr ""
+
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
#: company/templates/company/navbar.html:65 templates/js/build.js:563
@@ -2199,7 +2215,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:102
msgid "Company"
msgstr ""
@@ -2213,7 +2229,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:313
+#: company/templates/company/company_base.html:46 templates/js/order.js:61
msgid "Create Purchase Order"
msgstr ""
@@ -2221,7 +2237,8 @@ msgstr ""
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56 company/views.py:326
+#: company/templates/company/company_base.html:56
+#: company/templates/company/company_base.html:126
msgid "Delete Company"
msgstr ""
@@ -2235,15 +2252,9 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/delete.html:7
-#, python-format
-msgid "Are you sure you want to delete company '%(name)s'?"
-msgstr ""
-
-#: company/templates/company/delete.html:12
-#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be deleted."
+#: company/templates/company/company_base.html:166
+#: part/templates/part/part_base.html:307
+msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:21
@@ -2258,11 +2269,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:460
-#: order/templates/order/sales_order_base.html:94 stock/models.py:445
-#: stock/models.py:446 stock/templates/stock/item_base.html:262
-#: templates/js/company.js:40 templates/js/order.js:267
-#: templates/js/stock.js:1097
+#: company/templates/company/detail.html:67 order/models.py:540
+#: order/templates/order/sales_order_base.html:94 stock/models.py:453
+#: stock/models.py:454 stock/templates/stock/item_base.html:262
+#: templates/js/company.js:109 templates/js/order.js:329
+#: templates/js/stock.js:1111
msgid "Customer"
msgstr ""
@@ -2283,6 +2294,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
+#: company/templates/company/manufacturer_part_suppliers.html:46
#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
@@ -2305,26 +2317,25 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:68
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:127
-#: templates/js/stock.js:1312
+#: templates/js/stock.js:1326
msgid "New Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:69
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:72
-#: company/views.py:71 part/templates/part/manufacturer.html:52
-#: part/templates/part/supplier.html:56
+#: company/templates/company/detail_manufacturer_part.html:74
+#: company/views.py:66 part/templates/part/manufacturer.html:52
+#: part/templates/part/supplier.html:55
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:73
-#: company/views.py:284
+#: company/templates/company/detail_manufacturer_part.html:75
msgid "Create new Manufacturer"
msgstr ""
@@ -2335,7 +2346,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:123 part/templates/part/category.html:137
-#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
+#: part/templates/part/stock.html:55 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2347,26 +2358,24 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:44
-#: order/templates/order/purchase_order_detail.html:50
+#: part/templates/part/part_base.html:429
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1318
+#: part/templates/part/part_base.html:428 part/templates/part/supplier.html:17
+#: templates/js/stock.js:1332
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
-#: company/templates/company/manufacturer_part_suppliers.html:82
-#: company/views.py:64 order/templates/order/purchase_orders.html:185
-#: part/templates/part/supplier.html:50
+#: company/templates/company/manufacturer_part_suppliers.html:96
+#: company/views.py:60 part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
-#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:186
+#: company/templates/company/detail_supplier_part.html:73
msgid "Create new Supplier"
msgstr ""
@@ -2401,20 +2410,19 @@ msgstr ""
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:6
-msgid "Are you sure you want to delete the following Manufacturer Parts?"
+#: company/templates/company/manufacturer_part_base.html:125
+msgid "Edit Manufacturer Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:36
-#, python-format
-msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
+#: company/templates/company/manufacturer_part_base.html:134
+msgid "Delete Manufacturer Part"
msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:87
-#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
-#: templates/navbar.html:35
+#: company/views.py:59 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 part/templates/part/prices.html:153
+#: templates/InvenTree/search.html:316 templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2425,7 +2433,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:39 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:53
#: 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:128 templates/InvenTree/search.html:196
@@ -2451,9 +2459,11 @@ msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: company/templates/company/manufacturer_part_suppliers.html:142
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:191
+#: stock/views.py:855 templates/js/company.js:203 users/models.py:192
msgid "Delete"
msgstr ""
@@ -2471,11 +2481,27 @@ msgstr ""
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part_suppliers.html:83
+#: company/templates/company/manufacturer_part_suppliers.html:48
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:80
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:97
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
msgstr ""
+#: company/templates/company/manufacturer_part_suppliers.html:127
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:139
+msgid "Delete Parameters"
+msgstr ""
+
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
msgid "Manufactured Parts"
@@ -2492,8 +2518,8 @@ msgstr ""
#: stock/templates/stock/location.html:136
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
-#: templates/InvenTree/search.html:198 templates/js/stock.js:996
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2503,11 +2529,11 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: part/templates/part/navbar.html:101 part/templates/part/navbar.html:104
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:236
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
-#: users/models.py:45
+#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2516,10 +2542,10 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:213
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
-#: users/models.py:44
+#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2548,8 +2574,9 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
-#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:420
+#: stock/templates/stock/item_base.html:374 templates/js/company.js:505
+#: templates/js/stock.js:690
msgid "Supplier Part"
msgstr ""
@@ -2594,459 +2621,401 @@ msgid "Order Part"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:11
+#: part/templates/part/navbar.html:74
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2918
+#: company/templates/company/supplier_part_pricing.html:19
+#: company/templates/company/supplier_part_pricing.html:118
+#: part/templates/part/prices.html:264 part/views.py:2788
msgid "Add Price Break"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:38
-#: part/templates/part/sale_prices.html:46
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:89
-#: part/templates/part/sale_prices.html:97
+#: company/templates/company/supplier_part_pricing.html:52 part/views.py:2850
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:66 part/views.py:2836
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:91
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:90
-#: part/templates/part/sale_prices.html:98
+#: company/templates/company/supplier_part_pricing.html:92
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:81
-#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
-#: templates/navbar.html:36
+#: company/views.py:65 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 part/templates/part/prices.html:157
+#: templates/InvenTree/search.html:306 templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
-#: company/views.py:77 templates/InvenTree/search.html:336
+#: company/views.py:71 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:187
+#: company/views.py:72
msgid "New Customer"
msgstr ""
-#: company/views.py:86
+#: company/views.py:79
msgid "Companies"
msgstr ""
-#: company/views.py:87
+#: company/views.py:80
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:1115
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:1147
+#: company/views.py:190 part/views.py:1039
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:1154
+#: company/views.py:197 part/views.py:1046
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:1163
+#: company/views.py:206 part/views.py:1055
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: company/views.py:243
-msgid "Update Company Image"
-msgstr ""
-
-#: company/views.py:249
-msgid "Updated company image"
-msgstr ""
-
-#: company/views.py:259
-msgid "Edit Company"
-msgstr ""
-
-#: company/views.py:264
-msgid "Edited company information"
-msgstr ""
-
-#: company/views.py:287 order/templates/order/sales_orders.html:188
-msgid "Create new Customer"
-msgstr ""
-
-#: company/views.py:289
-msgid "Create new Company"
-msgstr ""
-
-#: company/views.py:316
-msgid "Created new company"
-msgstr ""
-
-#: company/views.py:332
-msgid "Company was deleted"
-msgstr ""
-
-#: company/views.py:357
-msgid "Edit Manufacturer Part"
-msgstr ""
-
-#: company/views.py:366
+#: company/views.py:251
msgid "Create New Manufacturer Part"
msgstr ""
-#: company/views.py:440
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: company/views.py:514
-msgid "Add Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:548
-msgid "Edit Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:588
+#: company/views.py:334
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:639 templates/js/stock.js:1319
+#: company/views.py:385 templates/js/stock.js:1333
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:783
+#: company/views.py:529
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2922
-msgid "Added new price break"
-msgstr ""
-
-#: company/views.py:916 part/views.py:2966
-msgid "Edit Price Break"
-msgstr ""
-
-#: company/views.py:931 part/views.py:2980
-msgid "Delete Price Break"
-msgstr ""
-
#: label/api.py:56 report/api.py:201
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:103
+#: label/models.py:104
msgid "Label name"
msgstr ""
-#: label/models.py:110
+#: label/models.py:111
msgid "Label description"
msgstr ""
-#: label/models.py:117 stock/forms.py:202
+#: label/models.py:118 stock/forms.py:169
msgid "Label"
msgstr ""
-#: label/models.py:118
+#: label/models.py:119
msgid "Label template file"
msgstr ""
-#: label/models.py:124 report/models.py:297
+#: label/models.py:125 report/models.py:297
msgid "Enabled"
msgstr ""
-#: label/models.py:125
+#: label/models.py:126
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Width [mm]"
msgstr ""
-#: label/models.py:131
+#: label/models.py:132
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Height [mm]"
msgstr ""
-#: label/models.py:138
+#: label/models.py:139
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:144 report/models.py:290
+#: label/models.py:145 report/models.py:290
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:145
+#: label/models.py:146
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:244 label/models.py:297
+#: label/models.py:249 label/models.py:306
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:245 label/models.py:298 report/models.py:317
+#: label/models.py:250 label/models.py:307 report/models.py:317
#: report/models.py:440 report/models.py:474
msgid "Filters"
msgstr ""
-#: order/forms.py:31 order/templates/order/order_base.html:47
+#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:42 order/templates/order/order_base.html:54
+#: order/forms.py:41 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
+#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:75 order/templates/order/sales_order_base.html:58
+#: order/forms.py:74 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:90
+#: order/forms.py:89
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:112
-msgid "Purchase Order reference"
-msgstr ""
-
-#: order/forms.py:119
-msgid "Target date for order delivery. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:147
-msgid "Enter sales order number"
-msgstr ""
-
-#: order/forms.py:154 order/models.py:472
-msgid "Target date for order completion. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:246
+#: order/forms.py:116
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:252
+#: order/forms.py:122
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:98
-msgid "Order reference"
-msgstr ""
-
-#: order/models.py:100
+#: order/models.py:154
msgid "Order description"
msgstr ""
-#: order/models.py:102
+#: order/models.py:156
msgid "Link to external page"
msgstr ""
-#: order/models.py:110 part/templates/part/detail.html:132
+#: order/models.py:164 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:117
+#: order/models.py:171
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:176
msgid "Order notes"
msgstr ""
-#: order/models.py:181 order/models.py:465
+#: order/models.py:243 order/models.py:530
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:248 order/models.py:545
msgid "Purchase order status"
msgstr ""
-#: order/models.py:190
+#: order/models.py:257
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:193 order/templates/order/order_base.html:98
-#: templates/js/order.js:179
+#: order/models.py:260 order/templates/order/order_base.html:98
+#: templates/js/order.js:241
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:193
+#: order/models.py:260
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:200
+#: order/models.py:267
msgid "received by"
msgstr ""
-#: order/models.py:205
+#: order/models.py:272
msgid "Issue Date"
msgstr ""
-#: order/models.py:206
+#: order/models.py:273
msgid "Date order was issued"
msgstr ""
-#: order/models.py:211
+#: order/models.py:278
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:212
+#: order/models.py:279
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:218
+#: order/models.py:285
msgid "Date order was completed"
msgstr ""
-#: order/models.py:242 part/views.py:1853 stock/models.py:300
-#: stock/models.py:1015
+#: order/models.py:309 part/views.py:1730 stock/models.py:308
+#: stock/models.py:1023
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:247
+#: order/models.py:314
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:345
+#: order/models.py:412
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:349
+#: order/models.py:416
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:351
+#: order/models.py:418
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:461
+#: order/models.py:541
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer Reference "
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:475 templates/js/order.js:303
+#: order/models.py:552
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:555 templates/js/order.js:370
msgid "Shipment Date"
msgstr ""
-#: order/models.py:482
+#: order/models.py:562
msgid "shipped by"
msgstr ""
-#: order/models.py:526
+#: order/models.py:606
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:613
+#: order/models.py:703
msgid "Item quantity"
msgstr ""
-#: order/models.py:615
+#: order/models.py:709
msgid "Line item reference"
msgstr ""
-#: order/models.py:617
+#: order/models.py:711
msgid "Line item notes"
msgstr ""
-#: order/models.py:643 order/models.py:710 templates/js/order.js:353
+#: order/models.py:741 order/models.py:812 templates/js/order.js:420
msgid "Order"
msgstr ""
-#: order/models.py:644 order/templates/order/order_base.html:9
+#: order/models.py:742 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
-#: templates/js/stock.js:669 templates/js/stock.js:1078
+#: stock/templates/stock/item_base.html:324 templates/js/order.js:210
+#: templates/js/stock.js:669 templates/js/stock.js:1092
msgid "Purchase Order"
msgstr ""
-#: order/models.py:658
+#: order/models.py:756
msgid "Supplier part"
msgstr ""
-#: order/models.py:661 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:219
+#: order/models.py:759 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:246
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:661
+#: order/models.py:759
msgid "Number of items received"
msgstr ""
-#: order/models.py:667 stock/models.py:537
-#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
+#: order/models.py:765 part/templates/part/prices.html:166 stock/models.py:545
+#: stock/templates/stock/item_base.html:331 templates/js/stock.js:704
msgid "Purchase Price"
msgstr ""
-#: order/models.py:668
+#: order/models.py:766
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:676
+#: order/models.py:774
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:718 part/templates/part/navbar.html:110
-#: part/templates/part/order_prices.html:108
-#: part/templates/part/part_pricing.html:97
+#: order/models.py:820 part/templates/part/part_pricing.html:97
+#: part/templates/part/prices.html:103 part/templates/part/prices.html:278
msgid "Sale Price"
msgstr ""
-#: order/models.py:719
+#: order/models.py:821
msgid "Unit sale price"
msgstr ""
-#: order/models.py:794 order/models.py:796
+#: order/models.py:900 order/models.py:902
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:800
+#: order/models.py:906
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:802
+#: order/models.py:908
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:805
+#: order/models.py:911
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:815
+#: order/models.py:921
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:820
+#: order/models.py:926
msgid "Line"
msgstr ""
-#: order/models.py:831
+#: order/models.py:937
msgid "Item"
msgstr ""
-#: order/models.py:832
+#: order/models.py:938
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:835
+#: order/models.py:941
msgid "Enter stock allocation quantity"
msgstr ""
+#: order/serializers.py:139
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Sale price currency"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
#: templates/attachment_delete.html:5
@@ -3091,16 +3060,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:180
-#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/order_base.html:188
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:199
+#: order/templates/order/purchase_order_detail.html:127
#: part/templates/part/category.html:217 part/templates/part/category.html:259
-#: stock/templates/stock/location.html:191 templates/js/stock.js:736
-#: templates/js/stock.js:1324
+#: part/templates/part/part_base.html:415
+#: stock/templates/stock/location.html:191 templates/js/stock.js:750
+#: templates/js/stock.js:1338
msgid "New Location"
msgstr ""
-#: order/templates/order/order_base.html:181
-#: order/templates/order/purchase_order_detail.html:101
+#: order/templates/order/order_base.html:200
+#: order/templates/order/purchase_order_detail.html:128
+#: part/templates/part/part_base.html:416
#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3253,7 +3228,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.js:205 templates/js/order.js:308
+#: templates/js/order.js:267 templates/js/order.js:375
msgid "Items"
msgstr ""
@@ -3277,7 +3252,6 @@ msgid "Purchase Order Attachments"
msgstr ""
#: order/templates/order/po_lineitem_delete.html:5
-#: order/templates/order/so_lineitem_delete.html:5
msgid "Are you sure you wish to delete this line item?"
msgstr ""
@@ -3295,40 +3269,52 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
-#: order/views.py:1410
+#: order/templates/order/purchase_order_detail.html:64
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:56
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:114
+#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/sales_order_detail.html:398
+msgid "Edit Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:110
+#: order/templates/order/sales_order_detail.html:408
+msgid "Delete Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:141
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/purchase_order_detail.html:169
+#: order/templates/order/sales_order_detail.html:233
msgid "Total"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:191
-#: order/templates/order/sales_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:218
+#: order/templates/order/sales_order_detail.html:256 templates/js/part.js:807
+#: templates/js/part.js:996
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:198
-#: order/templates/order/sales_order_detail.html:253
+#: order/templates/order/purchase_order_detail.html:225
+#: order/templates/order/sales_order_detail.html:263
msgid "Total price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:255
-#: order/templates/order/sales_order_detail.html:359
+#: order/templates/order/purchase_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:369
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:256
+#: order/templates/order/purchase_order_detail.html:283
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:261
+#: order/templates/order/purchase_order_detail.html:288
msgid "Receive line item"
msgstr ""
@@ -3343,7 +3329,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
-#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/models.py:326 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:157
#: part/templates/part/category_navbar.html:25
#: part/templates/part/category_navbar.html:32
@@ -3351,7 +3337,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:40
+#: users/models.py:41
msgid "Parts"
msgstr ""
@@ -3393,10 +3379,14 @@ msgstr ""
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100 templates/js/order.js:275
+#: order/templates/order/sales_order_base.html:100 templates/js/order.js:342
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_base.html:177
+msgid "Edit Sales Order"
+msgstr ""
+
#: order/templates/order/sales_order_cancel.html:8
#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
@@ -3412,69 +3402,69 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: order/templates/order/sales_order_detail.html:105 templates/js/bom.js:358
#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: order/templates/order/sales_order_detail.html:112 templates/js/build.js:611
#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: order/templates/order/sales_order_detail.html:113 templates/js/build.js:613
#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:176
+#: order/templates/order/sales_order_detail.html:186
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:216
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: order/templates/order/sales_order_detail.html:284 templates/js/build.js:676
#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:276
+#: order/templates/order/sales_order_detail.html:286
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:313
+#: order/templates/order/sales_order_detail.html:323
msgid "PO"
msgstr ""
-#: order/templates/order/sales_order_detail.html:343
+#: order/templates/order/sales_order_detail.html:353
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
+#: order/templates/order/sales_order_detail.html:356 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:349
+#: order/templates/order/sales_order_detail.html:359
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: order/templates/order/sales_order_detail.html:363 templates/js/build.js:732
#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:356
-#: order/templates/order/sales_order_detail.html:465
+#: order/templates/order/sales_order_detail.html:366
+#: order/templates/order/sales_order_detail.html:485
msgid "Calculate price"
msgstr ""
-#: order/templates/order/sales_order_detail.html:360
+#: order/templates/order/sales_order_detail.html:370
msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:471
+#: order/templates/order/sales_order_detail.html:491
msgid "Update Unit Price"
msgstr ""
@@ -3515,194 +3505,154 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:106
-msgid "Add Purchase Order Attachment"
-msgstr ""
-
-#: order/views.py:156
-msgid "Add Sales Order Attachment"
-msgstr ""
-
-#: order/views.py:348
-msgid "Create Sales Order"
-msgstr ""
-
-#: order/views.py:383
-msgid "Edit Purchase Order"
-msgstr ""
-
-#: order/views.py:403
-msgid "Edit Sales Order"
-msgstr ""
-
-#: order/views.py:419
+#: order/views.py:151
msgid "Cancel Order"
msgstr ""
-#: order/views.py:428 order/views.py:454
+#: order/views.py:160 order/views.py:186
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:431 order/views.py:457
+#: order/views.py:163 order/views.py:189
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:445
+#: order/views.py:177
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:471
+#: order/views.py:203
msgid "Issue Order"
msgstr ""
-#: order/views.py:480
+#: order/views.py:212
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:490
+#: order/views.py:222
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:501
+#: order/views.py:233
msgid "Complete Order"
msgstr ""
-#: order/views.py:517
+#: order/views.py:249
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:528
+#: order/views.py:260
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:538
+#: order/views.py:270
msgid "Ship Order"
msgstr ""
-#: order/views.py:554
+#: order/views.py:286
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:560
+#: order/views.py:292
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:339
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:804
+#: order/views.py:536
msgid "Receive Parts"
msgstr ""
-#: order/views.py:874
+#: order/views.py:606
msgid "Items received"
msgstr ""
-#: order/views.py:888
+#: order/views.py:620
msgid "No destination set"
msgstr ""
-#: order/views.py:933
+#: order/views.py:665
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:939
+#: order/views.py:671
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:945
+#: order/views.py:677
msgid "No lines specified"
msgstr ""
-#: order/views.py:1018
+#: order/views.py:750
msgid "Update prices"
msgstr ""
-#: order/views.py:1276
+#: order/views.py:1008
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1336
-msgid "Supplier part must be specified"
-msgstr ""
-
-#: order/views.py:1342
-msgid "Supplier must match for Part and Order"
-msgstr ""
-
-#: order/views.py:1473 order/views.py:1491
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/views.py:1507 order/views.py:1519
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/views.py:1512 order/views.py:1524
-msgid "Deleted line item"
-msgstr ""
-
-#: order/views.py:1537
+#: order/views.py:1061
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1582
+#: order/views.py:1106
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1598
+#: order/views.py:1122
msgid "Select line item"
msgstr ""
-#: order/views.py:1629
+#: order/views.py:1153
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1639
+#: order/views.py:1163
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1647
+#: order/views.py:1171
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1701
+#: order/views.py:1225
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1775
+#: order/views.py:1299
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1790
+#: order/views.py:1314
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1386
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1868
+#: order/views.py:1392
msgid "Price not found"
msgstr ""
-#: order/views.py:1871
+#: order/views.py:1395
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1876
+#: order/views.py:1400
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:138 part/models.py:72 part/models.py:747
+#: part/bom.py:138 part/models.py:72 part/models.py:756
#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3724,143 +3674,143 @@ msgstr ""
msgid "Error reading BOM file (incorrect row size)"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "File Format"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "Select output file format"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Cascading"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Download cascading / multi-level BOM"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Levels"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Select maximum number of BOM levels to export (0 = all levels)"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include Parameter Data"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include part parameters data in exported BOM"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include Stock Data"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include part stock data in exported BOM"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include Manufacturer Data"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include part manufacturer data in exported BOM"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include Supplier Data"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2191
+#: part/forms.py:106 part/models.py:2224
msgid "Parent Part"
msgstr ""
-#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:107 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr ""
-#: part/forms.py:129
+#: part/forms.py:113
msgid "Clear existing BOM items"
msgstr ""
-#: part/forms.py:135
+#: part/forms.py:119
msgid "Confirm BOM duplication"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "validate"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "BOM file"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "Select BOM file to upload"
msgstr ""
-#: part/forms.py:184
+#: part/forms.py:168
msgid "Related Part"
msgstr ""
-#: part/forms.py:203
+#: part/forms.py:175
msgid "Select part category"
msgstr ""
-#: part/forms.py:220
+#: part/forms.py:192
msgid "Duplicate all BOM data for this part"
msgstr ""
-#: part/forms.py:221
+#: part/forms.py:193
msgid "Copy BOM"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:198
msgid "Duplicate all parameter data for this part"
msgstr ""
-#: part/forms.py:227
+#: part/forms.py:199
msgid "Copy Parameters"
msgstr ""
-#: part/forms.py:232
+#: part/forms.py:204
msgid "Confirm part creation"
msgstr ""
-#: part/forms.py:237
+#: part/forms.py:209
msgid "Include category parameter templates"
msgstr ""
-#: part/forms.py:242
+#: part/forms.py:214
msgid "Include parent categories parameter templates"
msgstr ""
-#: part/forms.py:322
+#: part/forms.py:294
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:298
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2286
+#: part/forms.py:316 part/models.py:2323
msgid "Sub part"
msgstr ""
-#: part/forms.py:373
+#: part/forms.py:345
msgid "Input quantity for price calculation"
msgstr ""
@@ -3876,362 +3826,362 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2237
+#: part/models.py:86 part/models.py:2270
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:32
+#: part/models.py:87 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:39
+#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:448 part/models.py:460
+#: part/models.py:457 part/models.py:469
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:557
+#: part/models.py:566
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:561
+#: part/models.py:570
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:566
+#: part/models.py:575
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:645
+#: part/models.py:654
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:670 part/templates/part/detail.html:22
+#: part/models.py:679 part/templates/part/detail.html:22
msgid "Part name"
msgstr ""
-#: part/models.py:677
+#: part/models.py:686
msgid "Is Template"
msgstr ""
-#: part/models.py:678
+#: part/models.py:687
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:689
+#: part/models.py:698
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:690 part/templates/part/detail.html:60
+#: part/models.py:699 part/templates/part/detail.html:60
msgid "Variant Of"
msgstr ""
-#: part/models.py:696
+#: part/models.py:705
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:82
+#: part/models.py:710 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
-#: part/models.py:702
+#: part/models.py:711
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73
+#: part/models.py:718 part/models.py:2269 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:452
msgid "Category"
msgstr ""
-#: part/models.py:710
+#: part/models.py:719
msgid "Part category"
msgstr ""
-#: part/models.py:715 part/templates/part/detail.html:28
+#: part/models.py:724 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:87 templates/js/part.js:169
#: templates/js/part.js:296
msgid "IPN"
msgstr ""
-#: part/models.py:716
+#: part/models.py:725
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:722
+#: part/models.py:731
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199
+#: part/models.py:732 part/templates/part/detail.html:35 report/models.py:199
#: templates/js/part.js:173
msgid "Revision"
msgstr ""
-#: part/models.py:745
+#: part/models.py:754
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:792 part/templates/part/detail.html:97
+#: part/models.py:801 part/templates/part/detail.html:97
msgid "Default Supplier"
msgstr ""
-#: part/models.py:793
+#: part/models.py:802
msgid "Default supplier part"
msgstr ""
-#: part/models.py:800
+#: part/models.py:809
msgid "Default Expiry"
msgstr ""
-#: part/models.py:801
+#: part/models.py:810
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:806 part/templates/part/detail.html:113
+#: part/models.py:815 part/templates/part/detail.html:113
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:807
+#: part/models.py:816
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:814
+#: part/models.py:823
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:820
+#: part/models.py:829
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:835
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:832
+#: part/models.py:841
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:837
+#: part/models.py:846
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:842
+#: part/models.py:851
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:846 part/templates/part/detail.html:227
+#: part/models.py:855 part/templates/part/detail.html:227
#: templates/js/table_filters.js:21 templates/js/table_filters.js:65
-#: templates/js/table_filters.js:241 templates/js/table_filters.js:310
+#: templates/js/table_filters.js:246 templates/js/table_filters.js:315
msgid "Active"
msgstr ""
-#: part/models.py:847
+#: part/models.py:856
msgid "Is this part active?"
msgstr ""
-#: part/models.py:852
+#: part/models.py:861
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:857
+#: part/models.py:866
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "BOM checksum"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:863
+#: part/models.py:872
msgid "BOM checked by"
msgstr ""
-#: part/models.py:865
+#: part/models.py:874
msgid "BOM checked date"
msgstr ""
-#: part/models.py:869
+#: part/models.py:878
msgid "Creation User"
msgstr ""
-#: part/models.py:1608
+#: part/models.py:1617
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2063
+#: part/models.py:2088
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2080
+#: part/models.py:2105
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117
+#: part/models.py:2125 templates/js/part.js:717 templates/js/stock.js:117
msgid "Test Name"
msgstr ""
-#: part/models.py:2101
+#: part/models.py:2126
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2106
+#: part/models.py:2131
msgid "Test Description"
msgstr ""
-#: part/models.py:2107
+#: part/models.py:2132
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2112 templates/js/part.js:726
-#: templates/js/table_filters.js:227
+#: part/models.py:2137 templates/js/part.js:726
+#: templates/js/table_filters.js:232
msgid "Required"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2138
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2118 templates/js/part.js:734
+#: part/models.py:2143 templates/js/part.js:734
msgid "Requires Value"
msgstr ""
-#: part/models.py:2119
+#: part/models.py:2144
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2124 templates/js/part.js:741
+#: part/models.py:2149 templates/js/part.js:741
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2150
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2187
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2192
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2165
+#: part/models.py:2194
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2193 part/models.py:2242 part/models.py:2243
+#: part/models.py:2226 part/models.py:2275 part/models.py:2276
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Data"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2247 templates/InvenTree/settings/category.html:67
+#: part/models.py:2280 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2281
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2278
+#: part/models.py:2315
msgid "Select parent part"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2324
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2293
+#: part/models.py:2330
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2332 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2295
+#: part/models.py:2332
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2298
+#: part/models.py:2335
msgid "Overage"
msgstr ""
-#: part/models.py:2299
+#: part/models.py:2336
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2302
+#: part/models.py:2339
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2305
+#: part/models.py:2342
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "Checksum"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2348 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2312
+#: part/models.py:2349
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:287
+#: part/models.py:2354 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2318
+#: part/models.py:2355
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1859 part/views.py:1911
-#: stock/models.py:290
+#: part/models.py:2431 part/views.py:1736 part/views.py:1788
+#: stock/models.py:298
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2403 part/models.py:2405
+#: part/models.py:2440 part/models.py:2442
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2445
msgid "BOM Item"
msgstr ""
-#: part/models.py:2527
+#: part/models.py:2564
msgid "Part 1"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Part 2"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2563
+#: part/models.py:2600
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4247,14 +4197,6 @@ msgstr ""
msgid "Part Attachments"
msgstr ""
-#: part/templates/part/bom-delete.html:6
-msgid "Are you sure you want to delete this BOM item?"
-msgstr ""
-
-#: part/templates/part/bom-delete.html:8
-msgid "Deleting this entry will remove the BOM row from the following part"
-msgstr ""
-
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
@@ -4303,7 +4245,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:2154
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr ""
@@ -4319,8 +4261,8 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:590
-#: templates/js/stock.js:1313
+#: part/templates/part/bom.html:160 part/views.py:450
+#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr ""
@@ -4401,7 +4343,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:2564
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr ""
@@ -4461,11 +4403,12 @@ msgid "View grid display"
msgstr ""
#: part/templates/part/category.html:218
-#: stock/templates/stock/location.html:192 templates/js/stock.js:737
+#: stock/templates/stock/location.html:192 templates/js/stock.js:751
msgid "Create new location"
msgstr ""
#: part/templates/part/category.html:223 part/templates/part/category.html:253
+#: part/templates/part/part_base.html:378
msgid "New Category"
msgstr ""
@@ -4477,10 +4420,18 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:260 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1223
msgid "Create new Stock Location"
msgstr ""
+#: part/templates/part/category.html:279
+msgid "Select parent category"
+msgstr ""
+
+#: part/templates/part/category.html:286 part/views.py:2389
+msgid "Edit Part Category"
+msgstr ""
+
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4526,7 +4477,7 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:466
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr ""
@@ -4639,36 +4590,6 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:101
-msgid "Internal Price Information"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:19 part/views.py:2989
-msgid "Add Internal Price Break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:28 templates/403.html:5
-#: templates/403.html:11
-msgid "Permission Denied"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:31 templates/403.html:14
-msgid "You do not have permission to view this page."
-msgstr ""
-
-#: part/templates/part/internal_prices.html:59
-msgid "No internal price break information found"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:110
-msgid "Edit internal price break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:111
-msgid "Delete internal price break"
-msgstr ""
-
#: part/templates/part/manufacturer.html:11
msgid "Part Manufacturers"
msgstr ""
@@ -4678,7 +4599,7 @@ msgid "Delete manufacturer parts"
msgstr ""
#: part/templates/part/manufacturer.html:53
-#: part/templates/part/supplier.html:57
+#: part/templates/part/supplier.html:56
msgid "Create new manufacturer"
msgstr ""
@@ -4702,125 +4623,27 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
-msgid "Order Price Information"
+#: part/templates/part/navbar.html:77
+msgid "Prices"
msgstr ""
-#: part/templates/part/navbar.html:78
-msgid "Order Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
-#: part/templates/part/part_pricing.html:82
-msgid "Internal Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:107
-msgid "Sales Price Information"
-msgstr ""
-
-#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:109 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:112 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
+#: part/templates/part/navbar.html:117 part/templates/part/navbar.html:120
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:130 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:25
-#: part/templates/part/part_base.html:282
-msgid "Calculate"
-msgstr ""
-
-#: part/templates/part/order_prices.html:32
-msgid "Pricing ranges"
-msgstr ""
-
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/part_pricing.html:22
-msgid "Supplier Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:38
-#: part/templates/part/order_prices.html:63
-#: part/templates/part/order_prices.html:95
-#: part/templates/part/order_prices.html:109
-#: part/templates/part/part_pricing.html:26
-#: part/templates/part/part_pricing.html:52
-#: part/templates/part/part_pricing.html:85
-#: part/templates/part/part_pricing.html:100
-msgid "Unit Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:45
-#: part/templates/part/order_prices.html:70
-#: part/templates/part/order_prices.html:100
-#: part/templates/part/order_prices.html:114
-#: part/templates/part/part_pricing.html:32
-#: part/templates/part/part_pricing.html:58
-#: part/templates/part/part_pricing.html:89
-#: part/templates/part/part_pricing.html:104
-msgid "Total Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:53
-#: part/templates/part/part_pricing.html:40
-msgid "No supplier pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:129
-#: part/templates/part/part_pricing.html:48
-msgid "BOM Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:78
-#: part/templates/part/part_pricing.html:66
-msgid "Note: BOM pricing is incomplete for this part"
-msgstr ""
-
-#: part/templates/part/order_prices.html:85
-#: part/templates/part/part_pricing.html:73
-msgid "No BOM pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:123
-#: part/templates/part/part_pricing.html:113
-msgid "No pricing information is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:139
-msgid "Stock Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:147
-msgid "No stock pricing history is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:166
-#, python-format
-msgid "Single Price - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:178
-#, python-format
-msgid "Single Price Difference - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:190
-#, python-format
-msgid "Part Single Price - %(currency)s"
-msgstr ""
-
#: part/templates/part/params.html:17
msgid "Add new parameter"
msgstr ""
@@ -4841,8 +4664,8 @@ msgstr ""
msgid "Part List"
msgstr ""
-#: part/templates/part/part_base.html:26 templates/js/company.js:156
-#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161
+#: part/templates/part/part_base.html:26 templates/js/company.js:280
+#: templates/js/company.js:480 templates/js/part.js:84 templates/js/part.js:161
msgid "Inactive"
msgstr ""
@@ -4905,7 +4728,7 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131
+#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:132
msgid "Required for Build Orders"
msgstr ""
@@ -4926,10 +4749,86 @@ msgstr ""
msgid "Building"
msgstr ""
+#: part/templates/part/part_base.html:285 part/templates/part/prices.html:131
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:379
+msgid "Create New Part Category"
+msgstr ""
+
+#: part/templates/part/part_base.html:387
+msgid "New Parent"
+msgstr ""
+
+#: part/templates/part/part_base.html:435
+msgid "Edit Part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:27
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:31
+#: part/templates/part/prices.html:58 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:107
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:89
+#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:38
+#: part/templates/part/prices.html:65 part/templates/part/prices.html:95
+#: part/templates/part/prices.html:112
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:46
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:55
+#: part/templates/part/prices.html:235
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:73
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:80
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:113
+#: part/templates/part/prices.html:121
+msgid "No pricing information is available for this part."
+msgstr ""
+
#: part/templates/part/part_tests.html:17
msgid "Add Test Template"
msgstr ""
+#: part/templates/part/part_tests.html:61
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:79
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:91
+msgid "Delete Test Result Template"
+msgstr ""
+
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr ""
@@ -4964,12 +4863,98 @@ msgstr ""
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
-#: part/templates/part/related.html:18
-msgid "Add Related"
+#: part/templates/part/prices.html:12
+msgid "General Price Information"
msgstr ""
-#: part/templates/part/sale_prices.html:10
-msgid "Sell Price Information"
+#: part/templates/part/prices.html:22
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:28
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:29
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:56
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:104
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:105
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:127
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:146
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:147 part/templates/part/prices.html:167
+#: part/templates/part/prices.html:193 part/templates/part/prices.html:224
+#: part/templates/part/prices.html:251 part/templates/part/prices.html:279
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:172
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:180
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:192
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:206 part/views.py:2859
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:223
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:250
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:290
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:340
+#, python-format
+msgid "Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:352
+#, python-format
+msgid "Single Price Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:364
+#, python-format
+msgid "Part Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:464
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/related.html:18
+msgid "Add Related"
msgstr ""
#: part/templates/part/sales_orders.html:18
@@ -5043,216 +5028,180 @@ msgstr ""
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:164
-msgid "Add part attachment"
-msgstr ""
-
-#: part/views.py:217 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr ""
-
-#: part/views.py:221
-msgid "Part attachment updated"
-msgstr ""
-
-#: part/views.py:236
-msgid "Delete Part Attachment"
-msgstr ""
-
-#: part/views.py:244
-msgid "Deleted part attachment"
-msgstr ""
-
-#: part/views.py:253
-msgid "Create Test Template"
-msgstr ""
-
-#: part/views.py:280
-msgid "Edit Test Template"
-msgstr ""
-
-#: part/views.py:294
-msgid "Delete Test Template"
-msgstr ""
-
-#: part/views.py:301
+#: part/views.py:161
msgid "Set Part Category"
msgstr ""
-#: part/views.py:351
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:386
+#: part/views.py:246
msgid "Create Variant"
msgstr ""
-#: part/views.py:471
+#: part/views.py:331
msgid "Copied part"
msgstr ""
-#: part/views.py:525 part/views.py:663
+#: part/views.py:385 part/views.py:523
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:595
+#: part/views.py:455
msgid "Created new part"
msgstr ""
-#: part/views.py:763
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1092
+#: part/views.py:925
+msgid "None"
+msgstr ""
+
+#: part/views.py:984
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1194
-msgid "Upload Part Image"
-msgstr ""
-
-#: part/views.py:1200 part/views.py:1235
-msgid "Updated part image"
-msgstr ""
-
-#: part/views.py:1209
+#: part/views.py:1086
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1238
+#: part/views.py:1112
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:1115
msgid "Part image not found"
msgstr ""
-#: part/views.py:1249
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1284
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1314
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1335
+#: part/views.py:1212
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1356
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1367
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1501
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1862
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1887 part/views.py:1890
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr ""
-#: part/views.py:1896
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1934
+#: part/views.py:1811
msgid "Select a part"
msgstr ""
-#: part/views.py:1940
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1944
+#: part/views.py:1821
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2090
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2222
+#: part/views.py:2099
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2363
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2373
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2380
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2388
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2438
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2452
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2512
-msgid "Edit Part Category"
-msgstr ""
-
-#: part/views.py:2550
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2556
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2608
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2709
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2765
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2784
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2854
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2910
-msgid "Confim BOM item deletion"
+#: part/views.py:2792
+msgid "Added new price break"
msgstr ""
-#: part/views.py:2998
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3006
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5358,17 +5307,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1739
+#: stock/models.py:1759
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1745
+#: stock/models.py:1765
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:1012
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr ""
@@ -5380,287 +5329,287 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:212
+#: stock/api.py:211
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:280
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
+#: stock/forms.py:81 stock/forms.py:385 stock/models.py:513
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:419
+#: stock/forms.py:82 stock/forms.py:386
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:118
+#: stock/forms.py:85
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:169
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:173 stock/forms.py:349
+#: stock/forms.py:140 stock/forms.py:316
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:203 stock/forms.py:259
+#: stock/forms.py:170 stock/forms.py:226
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:75
+#: stock/forms.py:234 templates/js/table_filters.js:75
#: templates/js/table_filters.js:138
msgid "Include sublocations"
msgstr ""
-#: stock/forms.py:267
+#: stock/forms.py:234
msgid "Include stock items in sub locations"
msgstr ""
-#: stock/forms.py:302
+#: stock/forms.py:269
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:309
+#: stock/forms.py:276
msgid "Stock quantity to assign"
msgstr ""
-#: stock/forms.py:337
+#: stock/forms.py:304
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:347
+#: stock/forms.py:314
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/forms.py:375
+#: stock/forms.py:342
msgid "Destination stock location"
msgstr ""
-#: stock/forms.py:377
+#: stock/forms.py:344
msgid "Add note (required)"
msgstr ""
-#: stock/forms.py:381 stock/views.py:852 stock/views.py:1051
+#: stock/forms.py:348 stock/views.py:705 stock/views.py:904
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/forms.py:381
+#: stock/forms.py:348
msgid "Confirm movement of stock items"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set Default Location"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:52 stock/models.py:542
+#: stock/models.py:56 stock/models.py:550
msgid "Owner"
msgstr ""
-#: stock/models.py:53 stock/models.py:543
+#: stock/models.py:57 stock/models.py:551
msgid "Select Owner"
msgstr ""
-#: stock/models.py:271
+#: stock/models.py:279
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:307
+#: stock/models.py:315
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:317 stock/models.py:326
+#: stock/models.py:325 stock/models.py:334
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:318
+#: stock/models.py:326
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:340
+#: stock/models.py:348
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:346
+#: stock/models.py:354
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:361
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:395
+#: stock/models.py:403
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:412
msgid "Base part"
msgstr ""
-#: stock/models.py:413
+#: stock/models.py:421
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:426 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:421
+#: stock/models.py:429
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:428
+#: stock/models.py:436
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:433 stock/templates/stock/item_base.html:270
+#: stock/models.py:441 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:436
+#: stock/models.py:444
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:452
+#: stock/models.py:460
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:472
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:476
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:477
+#: stock/models.py:485
msgid "Source Build"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:487
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:490
+#: stock/models.py:498
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:493
+#: stock/models.py:501
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:499
+#: stock/models.py:507
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:514
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:529 stock/templates/stock/item_notes.html:13
+#: stock/models.py:537 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:538
+#: stock/models.py:546
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1006
+#: stock/models.py:1014
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1012
+#: stock/models.py:1020
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1018
+#: stock/models.py:1026
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1021
+#: stock/models.py:1029
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1024
+#: stock/models.py:1032
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1031
+#: stock/models.py:1039
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1197
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1679
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1716
+#: stock/models.py:1736
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1722
+#: stock/models.py:1742
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1740
+#: stock/models.py:1760
msgid "Test name"
msgstr ""
-#: stock/models.py:1746 templates/js/table_filters.js:217
+#: stock/models.py:1766 templates/js/table_filters.js:222
msgid "Test result"
msgstr ""
-#: stock/models.py:1752
+#: stock/models.py:1772
msgid "Test output value"
msgstr ""
-#: stock/models.py:1759
+#: stock/models.py:1779
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1785
msgid "Test notes"
msgstr ""
@@ -5850,6 +5799,10 @@ msgstr ""
msgid "No stocktake performed"
msgstr ""
+#: stock/templates/stock/item_base.html:499
+msgid "Edit Stock Status"
+msgstr ""
+
#: stock/templates/stock/item_childs.html:12
msgid "Child Stock Items"
msgstr ""
@@ -5909,6 +5862,19 @@ msgstr ""
msgid "Add Test Data"
msgstr ""
+#: stock/templates/stock/item_tests.html:86
+#: stock/templates/stock/item_tests.html:111
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:131
+msgid "Edit Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:145
+msgid "Delete Test Result"
+msgstr ""
+
#: stock/templates/stock/location.html:20
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
@@ -5957,7 +5923,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:97 users/models.py:41
+#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -5997,7 +5963,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1196
msgid "Convert Stock Item"
msgstr ""
@@ -6030,8 +5996,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
-#: stock/views.py:1830
+#: stock/views.py:230 stock/views.py:1175 stock/views.py:1297
+#: stock/views.py:1662
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -6039,208 +6005,188 @@ msgstr ""
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:265
-msgid "Add Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:311
-msgid "Edit Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:327
-msgid "Delete Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:343
+#: stock/views.py:264
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:273
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:297
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:385
+#: stock/views.py:306
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:396
+#: stock/views.py:317
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:407
+#: stock/views.py:328
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:345
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:444
-msgid "Add Test Result"
-msgstr ""
-
-#: stock/views.py:484
-msgid "Edit Test Result"
-msgstr ""
-
-#: stock/views.py:501
-msgid "Delete Test Result"
-msgstr ""
-
-#: stock/views.py:509
+#: stock/views.py:362
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:630
+#: stock/views.py:483
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:656
+#: stock/views.py:509
msgid "Install Stock Item"
msgstr ""
-#: stock/views.py:755
+#: stock/views.py:608
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:863
+#: stock/views.py:716
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:888
+#: stock/views.py:741
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Take"
msgstr ""
-#: stock/views.py:1001
+#: stock/views.py:854
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:187
+#: stock/views.py:854 users/models.py:188
msgid "Add"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:855
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:1031
+#: stock/views.py:884
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:1036
+#: stock/views.py:889
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:1043
+#: stock/views.py:896
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:1107
+#: stock/views.py:960
msgid "No action performed"
msgstr ""
-#: stock/views.py:1122
+#: stock/views.py:975
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:1137
+#: stock/views.py:990
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:1150
+#: stock/views.py:1003
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:1190
+#: stock/views.py:1043
msgid "No items were moved"
msgstr ""
-#: stock/views.py:1193
+#: stock/views.py:1046
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:1212
+#: stock/views.py:1065
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1222
-msgid "Edit Stock Item Status"
-msgstr ""
-
-#: stock/views.py:1245
+#: stock/views.py:1077
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1482
+#: stock/views.py:1314
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:327
+#: stock/views.py:1407 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1717
+#: stock/views.py:1549
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1799
+#: stock/views.py:1631
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1899
+#: stock/views.py:1731
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1912
+#: stock/views.py:1744
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1923
+#: stock/views.py:1755
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1930
+#: stock/views.py:1762
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1939
+#: stock/views.py:1771
msgid "Add Stock Tracking Entry"
msgstr ""
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
msgstr ""
@@ -6269,35 +6215,39 @@ msgstr ""
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:145
-msgid "Expired Stock"
+#: templates/InvenTree/index.html:131
+msgid "Depleted Stock"
msgstr ""
#: templates/InvenTree/index.html:146
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:147
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:192
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:185
+#: templates/InvenTree/index.html:193
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:214
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:207
+#: templates/InvenTree/index.html:215
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:237
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:230
+#: templates/InvenTree/index.html:238
msgid "Overdue Sales Orders"
msgstr ""
@@ -6582,24 +6532,12 @@ msgstr ""
msgid "copy version information"
msgstr ""
-#: templates/about.html:100 templates/js/modals.js:568
-#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54
-#: templates/modals.html:97
+#: templates/about.html:100 templates/js/modals.js:34
+#: templates/js/modals.js:677 templates/js/modals.js:970
+#: templates/modals.html:29 templates/modals.html:54 templates/modals.html:97
msgid "Close"
msgstr ""
-#: templates/attachment_table.html:6
-msgid "Add Attachment"
-msgstr ""
-
-#: templates/attachment_table.html:17
-msgid "Uploaded"
-msgstr ""
-
-#: templates/attachment_table.html:35
-msgid "Delete attachment"
-msgstr ""
-
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6616,6 +6554,22 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
+#: templates/js/attachment.js:16
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/attachment.js:56
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/attachment.js:69
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/attachment.js:76
+msgid "Delete attachment"
+msgstr ""
+
#: templates/js/barcode.js:8
msgid "Scan barcode data here using wedge scanner"
msgstr ""
@@ -6644,7 +6598,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:921
+#: templates/js/barcode.js:119 templates/js/modals.js:1030
msgid "Invalid server response"
msgstr ""
@@ -6744,7 +6698,7 @@ msgstr ""
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:372
+#: templates/js/bom.js:372 templates/js/bom.js:519
msgid "Delete BOM Item"
msgstr ""
@@ -6772,7 +6726,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/build.js:222 templates/js/order.js:382
+#: templates/js/build.js:222 templates/js/order.js:449
msgid "Location not specified"
msgstr ""
@@ -6798,7 +6752,7 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
-#: templates/js/stock.js:514 templates/js/stock.js:966
+#: templates/js/stock.js:514 templates/js/stock.js:980
msgid "Select"
msgstr ""
@@ -6810,45 +6764,69 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/company.js:74
+#: templates/js/company.js:45
+msgid "Edit Company"
+msgstr ""
+
+#: templates/js/company.js:66
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/company.js:143
msgid "Parts Supplied"
msgstr ""
-#: templates/js/company.js:83
+#: templates/js/company.js:152
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/company.js:96
+#: templates/js/company.js:165
msgid "No company information found"
msgstr ""
-#: templates/js/company.js:129
+#: templates/js/company.js:183
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/company.js:200
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/company.js:253
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/company.js:148 templates/js/company.js:347
+#: templates/js/company.js:272 templates/js/company.js:472
#: templates/js/part.js:68 templates/js/part.js:153
msgid "Template part"
msgstr ""
-#: templates/js/company.js:152 templates/js/company.js:351
+#: templates/js/company.js:276 templates/js/company.js:476
#: templates/js/part.js:72 templates/js/part.js:157
msgid "Assembled part"
msgstr ""
-#: templates/js/company.js:226
+#: templates/js/company.js:350
msgid "No parameters found"
msgstr ""
-#: templates/js/company.js:262
+#: templates/js/company.js:386
msgid "Edit parameter"
msgstr ""
-#: templates/js/company.js:263
+#: templates/js/company.js:387
msgid "Delete parameter"
msgstr ""
-#: templates/js/company.js:328
+#: templates/js/company.js:406
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/company.js:417
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/company.js:453
msgid "No supplier parts found"
msgstr ""
@@ -6876,6 +6854,83 @@ msgstr ""
msgid "Create filter"
msgstr ""
+#: templates/js/forms.js:278 templates/js/forms.js:291
+#: templates/js/forms.js:303 templates/js/forms.js:315
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/forms.js:279
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:292
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:304
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:316
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:583 templates/js/modals.js:1040
+msgid "No Response"
+msgstr ""
+
+#: templates/js/forms.js:584 templates/js/modals.js:1041
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/forms.js:590 templates/js/modals.js:1050
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/forms.js:591 templates/js/modals.js:1051
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/forms.js:597 templates/js/modals.js:1055
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/forms.js:598 templates/js/modals.js:1056
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/forms.js:604 templates/js/modals.js:1060
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/forms.js:605 templates/js/modals.js:1061
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/forms.js:611 templates/js/modals.js:1065
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/forms.js:612 templates/js/modals.js:1066
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/forms.js:618 templates/js/modals.js:1069
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/forms.js:788 templates/modals.html:21 templates/modals.html:47
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/forms.js:1161
+msgid "Searching"
+msgstr ""
+
+#: templates/js/forms.js:1301
+msgid "Clear input"
+msgstr ""
+
#: templates/js/label.js:10 templates/js/report.js:98
msgid "Select Stock Items"
msgstr ""
@@ -6916,112 +6971,102 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:265
-msgid "Waiting for server..."
-msgstr ""
-
-#: templates/js/modals.js:424
-msgid "Show Error Information"
-msgstr ""
-
-#: templates/js/modals.js:491 templates/modals.html:76
-msgid "Accept"
-msgstr ""
-
-#: templates/js/modals.js:492 templates/modals.html:75
+#: templates/js/modals.js:59 templates/js/modals.js:105
+#: templates/js/modals.js:601 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:556
-msgid "Loading Data"
-msgstr ""
-
-#: templates/js/modals.js:567 templates/js/modals.js:860
+#: templates/js/modals.js:60 templates/js/modals.js:104
+#: templates/js/modals.js:676 templates/js/modals.js:969
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:103
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/modals.js:374
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/modals.js:533
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/modals.js:600 templates/modals.html:76
+msgid "Accept"
+msgstr ""
+
+#: templates/js/modals.js:665
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/modals.js:920
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:920
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:824
+#: templates/js/modals.js:933
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:921
+#: templates/js/modals.js:1030
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:931
-msgid "No Response"
-msgstr ""
-
-#: templates/js/modals.js:932
-msgid "No response from the InvenTree server"
-msgstr ""
-
-#: templates/js/modals.js:936
+#: templates/js/modals.js:1045
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:937
+#: templates/js/modals.js:1046
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:941
-msgid "Error 401: Not Authenticated"
+#: templates/js/model_renderers.js:21
+msgid "Company ID"
msgstr ""
-#: templates/js/modals.js:942
-msgid "Authentication credentials not supplied"
+#: templates/js/model_renderers.js:63
+msgid "Location ID"
msgstr ""
-#: templates/js/modals.js:946
-msgid "Error 403: Permission Denied"
+#: templates/js/model_renderers.js:90
+msgid "Part ID"
msgstr ""
-#: templates/js/modals.js:947
-msgid "You do not have the required permissions to access this function"
+#: templates/js/model_renderers.js:126
+msgid "Category ID"
msgstr ""
-#: templates/js/modals.js:951
-msgid "Error 404: Resource Not Found"
+#: templates/js/model_renderers.js:150
+msgid "Supplier Part ID"
msgstr ""
-#: templates/js/modals.js:952
-msgid "The requested resource could not be located on the server"
+#: templates/js/order.js:31
+msgid "Create Sales Order"
msgstr ""
-#: templates/js/modals.js:956
-msgid "Error 408: Timeout"
-msgstr ""
-
-#: templates/js/modals.js:957
-msgid "Connection timeout while requesting data from server"
-msgstr ""
-
-#: templates/js/modals.js:960
-msgid "Error requesting form data"
-msgstr ""
-
-#: templates/js/order.js:138
+#: templates/js/order.js:200
msgid "No purchase orders found"
msgstr ""
-#: templates/js/order.js:162 templates/js/order.js:257
+#: templates/js/order.js:224 templates/js/order.js:319
msgid "Order is overdue"
msgstr ""
-#: templates/js/order.js:234
+#: templates/js/order.js:296
msgid "No sales orders found"
msgstr ""
-#: templates/js/order.js:343
+#: templates/js/order.js:333
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/order.js:410
msgid "No sales order allocations found"
msgstr ""
@@ -7061,11 +7106,11 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:476 templates/js/table_filters.js:323
+#: templates/js/part.js:476 templates/js/table_filters.js:328
msgid "Low stock"
msgstr ""
-#: templates/js/part.js:660 templates/js/stock.js:990
+#: templates/js/part.js:660 templates/js/stock.js:1004
msgid "Path"
msgstr ""
@@ -7085,7 +7130,22 @@ msgstr ""
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/part.js:806
+#: templates/js/part.js:786
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/part.js:839
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:840
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:959
msgid "Single Price Difference"
msgstr ""
@@ -7263,75 +7323,75 @@ msgstr ""
msgid "Stocktake"
msgstr ""
-#: templates/js/stock.js:853
+#: templates/js/stock.js:867
msgid "Stock Status"
msgstr ""
-#: templates/js/stock.js:868
+#: templates/js/stock.js:882
msgid "Set Stock Status"
msgstr ""
-#: templates/js/stock.js:882
+#: templates/js/stock.js:896
msgid "Select Status Code"
msgstr ""
-#: templates/js/stock.js:883
+#: templates/js/stock.js:897
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1022
+#: templates/js/stock.js:1036
msgid "Invalid date"
msgstr ""
-#: templates/js/stock.js:1069
+#: templates/js/stock.js:1083
msgid "Location no longer exists"
msgstr ""
-#: templates/js/stock.js:1088
+#: templates/js/stock.js:1102
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/stock.js:1107
+#: templates/js/stock.js:1121
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/stock.js:1125
+#: templates/js/stock.js:1139
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/stock.js:1148
+#: templates/js/stock.js:1162
msgid "Added"
msgstr ""
-#: templates/js/stock.js:1156
+#: templates/js/stock.js:1170
msgid "Removed"
msgstr ""
-#: templates/js/stock.js:1188
+#: templates/js/stock.js:1202
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1200
+#: templates/js/stock.js:1214
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1201
+#: templates/js/stock.js:1215
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1325
+#: templates/js/stock.js:1339
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1366
+#: templates/js/stock.js:1380
msgid "No installed items"
msgstr ""
-#: templates/js/stock.js:1389
+#: templates/js/stock.js:1403
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1417
+#: templates/js/stock.js:1431
msgid "Uninstall Stock Item"
msgstr ""
@@ -7352,7 +7412,7 @@ msgid "Include locations"
msgstr ""
#: templates/js/table_filters.js:86 templates/js/table_filters.js:87
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:305
msgid "Include subcategories"
msgstr ""
@@ -7385,7 +7445,7 @@ msgstr ""
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:290
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:295
msgid "Active parts"
msgstr ""
@@ -7457,43 +7517,51 @@ msgstr ""
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:236
+#: templates/js/table_filters.js:211
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/table_filters.js:212
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/table_filters.js:241
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
+#: templates/js/table_filters.js:265 templates/js/table_filters.js:282
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:306
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:305
+#: templates/js/table_filters.js:310
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:311
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:311
+#: templates/js/table_filters.js:316
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:319
+#: templates/js/table_filters.js:324
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:335
+#: templates/js/table_filters.js:340
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:347
+#: templates/js/table_filters.js:352
msgid "Purchasable"
msgstr ""
@@ -7550,10 +7618,6 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:47
-msgid "Form errors exist"
-msgstr ""
-
#: templates/navbar.html:13
msgid "Toggle navigation"
msgstr ""
@@ -7570,7 +7634,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:38
+#: templates/navbar.html:77 users/models.py:39
msgid "Admin"
msgstr ""
@@ -7790,35 +7854,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:174
+#: users/models.py:175
msgid "Permission set"
msgstr ""
-#: users/models.py:182
+#: users/models.py:183
msgid "Group"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "View"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "Permission to view items"
msgstr ""
-#: users/models.py:187
+#: users/models.py:188
msgid "Permission to add items"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Change"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:191
+#: users/models.py:192
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 200625b8cb..e7b0087141 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-01 22:35+0000\n"
-"PO-Revision-Date: 2021-07-01 22:38\n"
+"POT-Creation-Date: 2021-07-03 12:15+0000\n"
+"PO-Revision-Date: 2021-07-03 12:44\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -29,14 +29,14 @@ msgstr "Nie określono działania"
msgid "No matching action found"
msgstr "Nie znaleziono pasującej akcji"
-#: InvenTree/fields.py:84
+#: InvenTree/fields.py:99
msgid "Enter date"
msgstr "Wprowadź dane"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
-#: order/forms.py:75 part/forms.py:134
+#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
+#: order/forms.py:74 part/forms.py:118 templates/js/forms.js:486
msgid "Confirm"
msgstr "Potwierdź"
@@ -77,8 +77,8 @@ msgstr "Wybierz kategorię"
msgid "Duplicate serial: {n}"
msgstr "Powtórzony numer seryjny: {n}"
-#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
-#: stock/views.py:1795
+#: InvenTree/helpers.py:403 order/models.py:311 order/models.py:421
+#: stock/views.py:1627
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
@@ -106,49 +106,53 @@ msgstr "Nie znaleziono numerów seryjnych"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
-#: InvenTree/models.py:59 stock/models.py:1758
+#: InvenTree/models.py:61 stock/models.py:1778
msgid "Attachment"
msgstr "Załącznik"
-#: InvenTree/models.py:60
+#: InvenTree/models.py:62
msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
-#: InvenTree/models.py:62 templates/attachment_table.html:16
+#: InvenTree/models.py:64 templates/js/attachment.js:52
msgid "Comment"
msgstr "Komentarz"
-#: InvenTree/models.py:62
+#: InvenTree/models.py:64
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2043
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1179
+#: templates/js/stock.js:1193
msgid "User"
msgstr "Użytkownik"
-#: InvenTree/models.py:72
+#: InvenTree/models.py:74
msgid "upload date"
msgstr "data przesłania"
-#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396
-#: label/models.py:102 part/models.py:671 part/models.py:2163
+#: InvenTree/models.py:102
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:414
+#: label/models.py:103 part/models.py:680 part/models.py:2192
#: part/templates/part/params.html:27 report/models.py:180
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/company.js:235 templates/js/part.js:118
-#: templates/js/part.js:642 templates/js/stock.js:972
+#: templates/js/company.js:359 templates/js/part.js:118
+#: templates/js/part.js:642 templates/js/stock.js:986
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:114 build/models.py:135
-#: build/templates/build/detail.html:21 company/models.py:339
-#: company/models.py:532 company/templates/company/detail.html:27
+#: InvenTree/models.py:125 build/models.py:139
+#: build/templates/build/detail.html:21 company/models.py:353
+#: company/models.py:554 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
-#: part/models.py:695 part/templates/part/detail.html:54
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:110
+#: order/models.py:154 order/templates/order/purchase_order_detail.html:174
+#: part/models.py:704 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
#: report/templates/report/inventree_build_order_base.html:118
@@ -156,39 +160,43 @@ msgstr "Nazwa"
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
#: templates/js/build.js:834 templates/js/build.js:1102
-#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
+#: templates/js/company.js:125 templates/js/order.js:245
+#: templates/js/order.js:347 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
-#: templates/js/stock.js:557 templates/js/stock.js:984
-#: templates/js/stock.js:1029
+#: templates/js/stock.js:557 templates/js/stock.js:998
+#: templates/js/stock.js:1043
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:115
+#: InvenTree/models.py:126
msgid "Description (optional)"
msgstr "Opis (opcjonalny)"
-#: InvenTree/models.py:123
+#: InvenTree/models.py:134
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/settings.py:504
+#: InvenTree/serializers.py:52
+msgid "Must be a valid number"
+msgstr ""
+
+#: InvenTree/settings.py:505
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:508
+#: InvenTree/settings.py:509
msgid "Turkish"
msgstr "Turecki"
@@ -446,50 +454,48 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
+#: build/templates/build/detail.html:121
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:881 templates/js/order.js:200
-#: templates/js/order.js:298
+#: templates/js/build.js:881 templates/js/order.js:262
+#: templates/js/order.js:365
msgid "Target Date"
msgstr "Data docelowa"
-#: build/forms.py:43 build/models.py:225
+#: build/forms.py:43 build/models.py:229
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1354
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:31 common/models.py:741
-#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
-#: order/forms.py:289 order/models.py:613 order/models.py:835
-#: order/templates/order/order_wizard/match_parts.html:30
+#: company/forms.py:124 company/templates/company/supplier_part_pricing.html:79
+#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:702
+#: order/models.py:941 order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/purchase_order_detail.html:179
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:162
-#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
-#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
-#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:203
-#: part/templates/part/part_pricing.html:16
-#: part/templates/part/sale_prices.html:85
+#: order/templates/order/purchase_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:80
+#: order/templates/order/sales_order_detail.html:87
+#: order/templates/order/sales_order_detail.html:172
+#: order/templates/order/sales_order_detail.html:244 part/forms.py:314
+#: part/forms.py:344 part/forms.py:360 part/forms.py:376 part/models.py:2330
+#: part/templates/part/part_pricing.html:16 part/templates/part/prices.html:377
+#: part/templates/part/prices.html:474
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308
+#: stock/forms.py:142 stock/forms.py:275
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
-#: templates/js/build.js:1112 templates/js/order.js:393
-#: templates/js/part.js:796 templates/js/stock.js:1164
-#: templates/js/stock.js:1383
+#: templates/js/build.js:1112 templates/js/model_renderers.js:43
+#: templates/js/order.js:460 templates/js/part.js:827 templates/js/part.js:949
+#: templates/js/part.js:1005 templates/js/stock.js:1178
+#: templates/js/stock.js:1397
msgid "Quantity"
msgstr "Ilość"
@@ -501,7 +507,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:114 stock/forms.py:85
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -530,12 +536,12 @@ msgid "Mark build as complete"
msgstr "Oznacz budowę jako ukończoną"
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: stock/forms.py:347 stock/templates/stock/item_base.html:285
+#: stock/forms.py:314 stock/templates/stock/item_base.html:285
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:586 templates/js/order.js:378
-#: templates/js/stock.js:643 templates/js/stock.js:1056
+#: templates/js/build.js:586 templates/js/order.js:445
+#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr "Lokalizacja"
@@ -544,13 +550,13 @@ msgid "Location of completed parts"
msgstr "Lokalizacja ukończonych części"
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:465
+#: build/templates/build/detail.html:59 order/models.py:545
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:868
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:630 templates/js/stock.js:1133
-#: templates/js/stock.js:1399
+#: templates/js/order.js:249 templates/js/order.js:352
+#: templates/js/stock.js:630 templates/js/stock.js:1147
+#: templates/js/stock.js:1413
msgid "Status"
msgstr "Status"
@@ -582,60 +588,60 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:66 build/templates/build/build_base.html:9
+#: build/models.py:70 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:195
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/models.py:67 build/templates/build/index.html:8
+#: build/models.py:71 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
-#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:191
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
+#: templates/InvenTree/settings/tabs.html:34 users/models.py:44
msgid "Build Orders"
msgstr "Zlecenia budowy"
-#: build/models.py:127
+#: build/models.py:131
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:128 order/models.py:98 order/models.py:615
-#: order/templates/order/purchase_order_detail.html:174
-#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
+#: build/models.py:132 order/models.py:242 order/models.py:529
+#: order/models.py:709 order/templates/order/purchase_order_detail.html:201
+#: order/templates/order/sales_order_detail.html:239 part/models.py:2339
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr "Referencja"
-#: build/models.py:138
+#: build/models.py:142
msgid "Brief description of the build"
msgstr "Krótki opis budowy"
-#: build/models.py:147 build/templates/build/build_base.html:163
+#: build/models.py:151 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr "Budowa nadrzędna"
-#: build/models.py:148
+#: build/models.py:152
msgid "BuildOrder to which this build is allocated"
msgstr "Zamówienie budowy, do którego budowa jest przypisana"
-#: build/models.py:153 build/templates/build/auto_allocate.html:16
+#: build/models.py:157 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:657 order/models.py:712
+#: build/templates/build/detail.html:26 company/models.py:689
+#: order/models.py:755 order/models.py:814
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:132
+#: order/templates/order/purchase_order_detail.html:159
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:214 part/models.py:321
-#: part/models.py:1975 part/models.py:1987 part/models.py:2002
-#: part/models.py:2020 part/models.py:2095 part/models.py:2191
-#: part/models.py:2277 part/templates/part/part_app_base.html:8
+#: order/templates/order/sales_order_detail.html:224 part/models.py:325
+#: part/models.py:1988 part/models.py:2004 part/models.py:2023
+#: part/models.py:2041 part/models.py:2120 part/models.py:2224
+#: part/models.py:2314 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
@@ -644,222 +650,222 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
#: templates/js/build.js:552 templates/js/build.js:839
-#: templates/js/build.js:1079 templates/js/company.js:140
-#: templates/js/company.js:339 templates/js/part.js:241
+#: templates/js/build.js:1079 templates/js/company.js:264
+#: templates/js/company.js:464 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
-#: templates/js/stock.js:1371
+#: templates/js/stock.js:1385
msgid "Part"
msgstr "Część"
-#: build/models.py:161
+#: build/models.py:165
msgid "Select part to build"
msgstr "Wybierz część do budowy"
-#: build/models.py:166
+#: build/models.py:170
msgid "Sales Order Reference"
msgstr "Odwołanie do zamówienia sprzedaży"
-#: build/models.py:170
+#: build/models.py:174
msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
-#: build/models.py:175
+#: build/models.py:179
msgid "Source Location"
msgstr "Lokalizacja źródła"
-#: build/models.py:179
+#: build/models.py:183
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)"
-#: build/models.py:184
+#: build/models.py:188
msgid "Destination Location"
msgstr "Lokalizacja docelowa"
-#: build/models.py:188
+#: build/models.py:192
msgid "Select location where the completed items will be stored"
msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy"
-#: build/models.py:192
+#: build/models.py:196
msgid "Build Quantity"
msgstr "Ilość do stworzenia"
-#: build/models.py:195
+#: build/models.py:199
msgid "Number of stock items to build"
msgstr "Ilość przedmiotów do zbudowania"
-#: build/models.py:199
+#: build/models.py:203
msgid "Completed items"
msgstr "Ukończone elementy"
-#: build/models.py:201
+#: build/models.py:205
msgid "Number of stock items which have been completed"
msgstr "Ilość produktów magazynowych które zostały ukończone"
-#: build/models.py:205 part/templates/part/part_base.html:167
+#: build/models.py:209 part/templates/part/part_base.html:167
msgid "Build Status"
msgstr "Status budowania"
-#: build/models.py:209
+#: build/models.py:213
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:213 stock/models.py:462
+#: build/models.py:217 stock/models.py:470
msgid "Batch Code"
msgstr "Kod partii"
-#: build/models.py:217
+#: build/models.py:221
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:220 order/models.py:104 part/models.py:867
-#: part/templates/part/detail.html:126 templates/js/order.js:293
+#: build/models.py:224 order/models.py:158 part/models.py:876
+#: part/templates/part/detail.html:126 templates/js/order.js:360
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:224 order/models.py:471
+#: build/models.py:228 order/models.py:551
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
-#: build/models.py:228 order/models.py:217 templates/js/build.js:886
+#: build/models.py:232 order/models.py:284 templates/js/build.js:886
msgid "Completion Date"
msgstr "Data zakończenia"
-#: build/models.py:234
+#: build/models.py:238
msgid "completed by"
msgstr "zrealizowane przez"
-#: build/models.py:242
+#: build/models.py:246
msgid "Issued by"
msgstr "Wydany przez"
-#: build/models.py:243
+#: build/models.py:247
msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
-#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:118
+#: build/models.py:255 build/templates/build/build_base.html:184
+#: build/templates/build/detail.html:105 order/models.py:172
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:871
+#: order/templates/order/sales_order_base.html:140 part/models.py:880
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr "Odpowiedzialny"
-#: build/models.py:252
+#: build/models.py:256
msgid "User responsible for this build order"
msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
-#: build/models.py:257 build/templates/build/detail.html:91
+#: build/models.py:261 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
#: company/templates/company/manufacturer_part_detail.html:28
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:456 stock/templates/stock/item_base.html:345
+#: stock/models.py:464 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:258 part/models.py:729 stock/models.py:458
+#: build/models.py:262 part/models.py:738 stock/models.py:466
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
-#: build/models.py:262 build/templates/build/navbar.html:53
-#: company/models.py:132 company/models.py:539
+#: build/models.py:266 build/templates/build/navbar.html:53
+#: company/models.py:141 company/models.py:561
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:122
-#: order/models.py:617 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:176
+#: order/models.py:711 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/purchase_order_detail.html:243
-#: order/templates/order/sales_order_detail.html:309
+#: order/templates/order/purchase_order_detail.html:270
+#: order/templates/order/sales_order_detail.html:319
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:145
+#: order/templates/order/so_navbar.html:36 part/models.py:865
+#: part/templates/part/navbar.html:133
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
+#: stock/forms.py:140 stock/forms.py:284 stock/forms.py:316 stock/forms.py:344
+#: stock/models.py:536 stock/models.py:1678 stock/models.py:1784
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:713
msgid "Notes"
msgstr "Uwagi"
-#: build/models.py:263
+#: build/models.py:267
msgid "Extra build notes"
msgstr "Dodatkowe notatki do budowy"
-#: build/models.py:740
+#: build/models.py:744
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
-#: build/models.py:743
+#: build/models.py:747
msgid "Build output is already completed"
msgstr "Budowanie wyjścia jest już ukończone"
-#: build/models.py:746
+#: build/models.py:750
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1152
+#: build/models.py:1160
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1177
+#: build/models.py:1185
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1181
+#: build/models.py:1189
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:809
+#: build/models.py:1196 order/models.py:915
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:812
+#: build/models.py:1200 order/models.py:918
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1204
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1264
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1316 stock/templates/stock/item_base.html:317
+#: build/models.py:1324 stock/templates/stock/item_base.html:317
#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr "Budowa"
-#: build/models.py:1317
+#: build/models.py:1325
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1333 stock/templates/stock/item_base.html:8
+#: build/models.py:1341 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
#: templates/js/build.js:211 templates/js/build.js:929
-#: templates/js/order.js:366 templates/js/order.js:371
-#: templates/js/stock.js:1115
+#: templates/js/order.js:433 templates/js/order.js:438
+#: templates/js/stock.js:1129
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:1334
+#: build/models.py:1342
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1347
+#: build/models.py:1355
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1355
+#: build/models.py:1363
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:1356
+#: build/models.py:1364
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
@@ -893,7 +899,7 @@ msgstr "Zamów wymagane komponenty"
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:724
#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr "Zamów części"
@@ -912,23 +918,52 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:160
+#: order/templates/order/sales_order_detail.html:85
+#: order/templates/order/sales_order_detail.html:170
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:450 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:570
+#: stock/models.py:458 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570 templates/js/model_renderers.js:41
msgid "Serial Number"
msgstr "Numer Seryjny"
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
-#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:124
+#: part/templates/part/navbar.html:127 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr "Załączniki"
+#: build/templates/build/attachments.html:51
+#: order/templates/order/so_attachments.html:79
+#: part/templates/part/attachments.html:81
+#: stock/templates/stock/item_attachments.html:81
+#: templates/attachment_table.html:6
+msgid "Add Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:69
+#: order/templates/order/so_attachments.html:52
+#: part/templates/part/attachments.html:35
+#: stock/templates/stock/item_attachments.html:49
+msgid "Edit Attachment"
+msgstr "Edytuj załącznik"
+
+#: build/templates/build/attachments.html:76
+#: order/templates/order/so_attachments.html:58
+#: part/templates/part/attachments.html:44
+#: stock/templates/stock/item_attachments.html:58
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/attachments.html:77
+#: order/templates/order/so_attachments.html:59
+#: part/templates/part/attachments.html:45
+#: stock/templates/stock/item_attachments.html:59
+msgid "Delete Attachment"
+msgstr "Usuń załącznik"
+
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
msgstr "Przydziel automatycznie zapasy"
@@ -989,8 +1024,8 @@ msgstr "Widok administratora"
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
#: order/templates/order/sales_order_base.html:88
-#: templates/js/table_filters.js:245 templates/js/table_filters.js:264
-#: templates/js/table_filters.js:281
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:269
+#: templates/js/table_filters.js:286
msgid "Overdue"
msgstr "Zaległe"
@@ -1036,13 +1071,13 @@ msgid "Progress"
msgstr "Postęp"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:710
+#: build/templates/build/detail.html:84 order/models.py:812
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:279 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:279 templates/js/order.js:307
msgid "Sales Order"
msgstr "Zamówienie zakupu"
@@ -1183,10 +1218,10 @@ msgstr "Źródło magazynu"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
-#: order/templates/order/purchase_order_detail.html:239
-#: order/templates/order/receive_parts.html:25 stock/forms.py:169
-#: stock/forms.py:375
+#: build/templates/build/detail.html:46 order/forms.py:88 order/models.py:771
+#: order/templates/order/purchase_order_detail.html:266
+#: order/templates/order/receive_parts.html:25 stock/forms.py:136
+#: stock/forms.py:342
msgid "Destination"
msgstr "Przeznaczenie"
@@ -1196,7 +1231,7 @@ msgstr "Nie określono lokalizacji docelowej"
#: build/templates/build/detail.html:70
#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638
-#: templates/js/stock.js:1406 templates/js/table_filters.js:112
+#: templates/js/stock.js:1420 templates/js/table_filters.js:112
#: templates/js/table_filters.js:206
msgid "Batch"
msgstr "Partia"
@@ -1251,7 +1286,7 @@ msgstr "Szczegóły zlecenia budowy"
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
-#: templates/js/stock.js:1044
+#: templates/js/stock.js:1058
msgid "Details"
msgstr "Szczegóły"
@@ -1287,7 +1322,6 @@ msgstr "Edytuj uwagi"
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487
-#: stock/templates/stock/item_base.html:497
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr "Zapisz"
@@ -1316,7 +1350,7 @@ msgstr "Utwórz zlecenie budowy"
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/views.py:1821
+#: build/views.py:184 stock/views.py:1653
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
@@ -1332,7 +1366,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:281 build/views.py:371 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:346
msgid "Check the confirmation box"
msgstr ""
@@ -1429,31 +1463,6 @@ msgstr ""
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1070
-msgid "Add Build Order Attachment"
-msgstr ""
-
-#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
-#: stock/views.py:277
-msgid "Added attachment"
-msgstr "Dodano załącznik"
-
-#: build/views.py:1119 order/views.py:196 order/views.py:217
-msgid "Edit Attachment"
-msgstr "Edytuj załącznik"
-
-#: build/views.py:1129 order/views.py:200 order/views.py:221
-msgid "Attachment updated"
-msgstr "Załącznik zaktualizowany"
-
-#: build/views.py:1139 order/views.py:236 order/views.py:250
-msgid "Delete Attachment"
-msgstr "Usuń załącznik"
-
-#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
-msgid "Deleted attachment"
-msgstr "Załącznik usunięto"
-
#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1470,7 +1479,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/attachment_table.html:15
+#: common/forms.py:34 templates/js/attachment.js:42
msgid "File"
msgstr ""
@@ -1503,7 +1512,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:72 company/models.py:94 company/models.py:95
+#: common/models.py:72 company/models.py:99 company/models.py:100
msgid "Company name"
msgstr "Nazwa firmy"
@@ -1607,9 +1616,9 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
-#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
-#: templates/js/table_filters.js:315
+#: common/models.py:160 part/models.py:2226 part/templates/part/detail.html:160
+#: report/models.py:186 stock/forms.py:226 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:320
msgid "Template"
msgstr "Szablon"
@@ -1617,8 +1626,8 @@ msgstr "Szablon"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
+#: common/models.py:167 part/models.py:828 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:128 templates/js/table_filters.js:332
msgid "Assembly"
msgstr "Złożenie"
@@ -1626,8 +1635,8 @@ msgstr "Złożenie"
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:331
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:336
msgid "Component"
msgstr "Komponent"
@@ -1635,7 +1644,7 @@ msgstr "Komponent"
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:845 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr "Możliwość zakupu"
@@ -1643,8 +1652,8 @@ msgstr "Możliwość zakupu"
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:339
+#: common/models.py:188 part/models.py:850 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:344
msgid "Salable"
msgstr "Możliwość sprzedaży"
@@ -1652,8 +1661,8 @@ msgstr "Możliwość sprzedaży"
msgid "Parts are salable by default"
msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
+#: common/models.py:195 part/models.py:840 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:348
msgid "Trackable"
msgstr "Możliwość śledzenia"
@@ -1661,7 +1670,7 @@ msgstr "Możliwość śledzenia"
msgid "Parts are trackable by default"
msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:860 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr "Wirtualny"
@@ -1858,13 +1867,12 @@ msgstr ""
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:742 company/forms.py:190
+#: common/models.py:742 company/forms.py:125
msgid "Price break quantity"
msgstr ""
-#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
-#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
+#: templates/js/part.js:832
msgid "Price"
msgstr "Cena"
@@ -1894,16 +1902,16 @@ msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:605
+#: order/templates/order/po_navbar.html:22 order/views.py:337
#: part/templates/part/bom_upload/upload_file.html:27
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:621
msgid "Upload File"
msgstr "Wyślij plik"
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:338 part/templates/part/bom_upload/select_fields.html:58
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr ""
@@ -1928,269 +1936,277 @@ msgstr ""
msgid "Previous Step"
msgstr ""
-#: company/forms.py:37 company/models.py:142
-#: company/templates/company/detail.html:42
-msgid "Currency"
-msgstr "Waluta"
-
-#: company/forms.py:38 company/models.py:144
-msgid "Default currency used for this company"
-msgstr ""
-
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:26 part/forms.py:46
msgid "URL"
msgstr "URL"
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:27 part/forms.py:47
msgid "Image URL"
msgstr "URL zdjęcia"
-#: company/forms.py:132 templates/js/part.js:787
+#: company/forms.py:67 templates/js/part.js:940
msgid "Single Price"
msgstr "Cena jednostkowa"
-#: company/forms.py:133
+#: company/forms.py:68
msgid "Single quantity price"
msgstr "Cena jednostkowa"
-#: company/forms.py:141 company/models.py:321
+#: company/forms.py:76 company/models.py:335
msgid "Select manufacturer"
msgstr "Wybierz producenta"
-#: company/forms.py:147 company/models.py:328
+#: company/forms.py:82 company/models.py:342
msgid "Manufacturer Part Number"
msgstr "Numer producenta"
-#: company/forms.py:149 company/models.py:327
+#: company/forms.py:84 company/models.py:341
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:162 part/bom.py:171
-#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408
+#: order/templates/order/purchase_order_detail.html:189 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:305 templates/js/company.js:533
msgid "MPN"
msgstr "MPN"
-#: company/models.py:99
+#: company/models.py:104
msgid "Company description"
msgstr "Opis firmy"
-#: company/models.py:100
+#: company/models.py:105
msgid "Description of the company"
msgstr "Opis firmy"
-#: company/models.py:104 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:33 templates/js/company.js:60
+#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:129
msgid "Website"
msgstr "Strona WWW"
-#: company/models.py:104
+#: company/models.py:112
msgid "Company website URL"
msgstr "Witryna internetowa firmy"
-#: company/models.py:107 company/templates/company/company_base.html:77
+#: company/models.py:116 company/templates/company/company_base.html:77
msgid "Address"
msgstr "Adres"
-#: company/models.py:108
+#: company/models.py:117
msgid "Company address"
msgstr "Adres firmy"
-#: company/models.py:111
+#: company/models.py:120
msgid "Phone number"
msgstr "Numer telefonu"
-#: company/models.py:112
+#: company/models.py:121
msgid "Contact phone number"
msgstr "Numer telefonu kontaktowego"
-#: company/models.py:115 company/templates/company/company_base.html:91
+#: company/models.py:124 company/templates/company/company_base.html:91
msgid "Email"
msgstr "Adres E-Mail"
-#: company/models.py:115
+#: company/models.py:124
msgid "Contact email address"
msgstr "Kontaktowy adres e-mail"
-#: company/models.py:118 company/templates/company/company_base.html:98
+#: company/models.py:127 company/templates/company/company_base.html:98
msgid "Contact"
msgstr "Kontakt"
-#: company/models.py:119
+#: company/models.py:128
msgid "Point of contact"
msgstr "Punkt kontaktowy"
-#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:102 part/models.py:728
+#: company/models.py:130 company/models.py:347 company/models.py:548
+#: order/models.py:156 part/models.py:737
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/company.js:188 templates/js/company.js:419
+#: templates/js/company.js:312 templates/js/company.js:544
#: templates/js/part.js:498
msgid "Link"
msgstr "Łącze"
-#: company/models.py:121
+#: company/models.py:130
msgid "Link to external company information"
msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
-#: company/models.py:129 part/models.py:738
+#: company/models.py:138 part/models.py:747
msgid "Image"
msgstr "Obraz"
-#: company/models.py:134
+#: company/models.py:143
msgid "is customer"
msgstr "jest klientem"
-#: company/models.py:134
+#: company/models.py:143
msgid "Do you sell items to this company?"
msgstr "Czy sprzedajesz produkty tej firmie?"
-#: company/models.py:136
+#: company/models.py:145
msgid "is supplier"
msgstr "jest dostawcą"
-#: company/models.py:136
+#: company/models.py:145
msgid "Do you purchase items from this company?"
msgstr "Czy kupujesz przedmioty od tej firmy?"
-#: company/models.py:138
+#: company/models.py:147
msgid "is manufacturer"
msgstr "jest producentem"
-#: company/models.py:138
+#: company/models.py:147
msgid "Does this company manufacture parts?"
msgstr "Czy to przedsiębiorstwo produkuje części?"
-#: company/models.py:305 company/models.py:497 stock/models.py:403
+#: company/models.py:151 company/serializers.py:259
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr "Waluta"
+
+#: company/models.py:154
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:319 company/models.py:519 stock/models.py:411
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr "Część bazowa"
-#: company/models.py:309 company/models.py:501 order/views.py:1603
+#: company/models.py:323 company/models.py:523 order/views.py:1127
msgid "Select part"
msgstr "Wybierz część"
-#: company/models.py:320 company/templates/company/detail.html:57
+#: company/models.py:334 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
#: part/bom.py:241 stock/templates/stock/item_base.html:352
-#: templates/js/company.js:44 templates/js/company.js:165
-#: templates/js/company.js:390
+#: templates/js/company.js:113 templates/js/company.js:289
+#: templates/js/company.js:515
msgid "Manufacturer"
msgstr "Producent"
-#: company/models.py:334
+#: company/models.py:348
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:340
+#: company/models.py:354
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:390 company/models.py:520
+#: company/models.py:408 company/models.py:542
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:362
msgid "Manufacturer Part"
msgstr "Część producenta"
-#: company/models.py:397
+#: company/models.py:415
msgid "Parameter name"
msgstr ""
-#: company/models.py:403 part/templates/part/params.html:28
+#: company/models.py:421 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
-#: templates/js/company.js:241 templates/js/stock.js:137
+#: stock/models.py:1771 templates/InvenTree/settings/header.html:8
+#: templates/js/company.js:365 templates/js/stock.js:137
msgid "Value"
msgstr ""
-#: company/models.py:404
+#: company/models.py:422
msgid "Parameter value"
msgstr ""
-#: company/models.py:410 part/models.py:813 part/models.py:2165
+#: company/models.py:428 part/models.py:822 part/models.py:2194
#: part/templates/part/detail.html:106 part/templates/part/params.html:29
-#: templates/js/company.js:247
+#: templates/js/company.js:371
msgid "Units"
msgstr "Jednostki"
-#: company/models.py:411
+#: company/models.py:429
msgid "Parameter units"
msgstr ""
-#: company/models.py:507 company/templates/company/detail.html:62
+#: company/models.py:529 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:256
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
-#: templates/js/company.js:48 templates/js/company.js:364
-#: templates/js/order.js:170
+#: templates/js/company.js:117 templates/js/company.js:489
+#: templates/js/order.js:232
msgid "Supplier"
msgstr "Dostawca"
-#: company/models.py:508
+#: company/models.py:530
msgid "Select supplier"
msgstr "Wybierz dostawcę"
-#: company/models.py:513 company/templates/company/supplier_part_base.html:88
+#: company/models.py:535 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:153 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:180 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr "SKU"
-#: company/models.py:514
+#: company/models.py:536
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:521
+#: company/models.py:543
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:527
+#: company/models.py:549
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:533
+#: company/models.py:555
msgid "Supplier part description"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part_base.html:116
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305
+#: company/models.py:560 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2342
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:427 stock/templates/stock/item_base.html:310
-#: templates/js/stock.js:695
+#: company/models.py:566 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:435 stock/templates/stock/item_base.html:310
+#: templates/js/stock.js:709
msgid "Packaging"
msgstr "Opakowanie"
-#: company/models.py:544
+#: company/models.py:566
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:546 part/models.py:1608
+#: company/models.py:568 part/models.py:1617
msgid "multiple"
msgstr "wielokrotność"
-#: company/models.py:546
+#: company/models.py:568
msgid "Order multiple"
msgstr ""
+#: company/serializers.py:68
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:69
+msgid "Currency Code"
+msgstr ""
+
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
#: company/templates/company/navbar.html:65 templates/js/build.js:563
@@ -2199,7 +2215,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:102
msgid "Company"
msgstr "Firma"
@@ -2213,7 +2229,7 @@ msgstr "Prześlij nowy obraz"
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:313
+#: company/templates/company/company_base.html:46 templates/js/order.js:61
msgid "Create Purchase Order"
msgstr ""
@@ -2221,7 +2237,8 @@ msgstr ""
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56 company/views.py:326
+#: company/templates/company/company_base.html:56
+#: company/templates/company/company_base.html:126
msgid "Delete Company"
msgstr ""
@@ -2235,15 +2252,9 @@ msgstr ""
msgid "Phone"
msgstr "Telefon"
-#: company/templates/company/delete.html:7
-#, python-format
-msgid "Are you sure you want to delete company '%(name)s'?"
-msgstr ""
-
-#: company/templates/company/delete.html:12
-#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be deleted."
+#: company/templates/company/company_base.html:166
+#: part/templates/part/part_base.html:307
+msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:21
@@ -2258,11 +2269,11 @@ msgstr "Nie określono strony internetowej"
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:460
-#: order/templates/order/sales_order_base.html:94 stock/models.py:445
-#: stock/models.py:446 stock/templates/stock/item_base.html:262
-#: templates/js/company.js:40 templates/js/order.js:267
-#: templates/js/stock.js:1097
+#: company/templates/company/detail.html:67 order/models.py:540
+#: order/templates/order/sales_order_base.html:94 stock/models.py:453
+#: stock/models.py:454 stock/templates/stock/item_base.html:262
+#: templates/js/company.js:109 templates/js/order.js:329
+#: templates/js/stock.js:1111
msgid "Customer"
msgstr "Klient"
@@ -2283,6 +2294,7 @@ msgstr "Nowa część producenta"
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
+#: company/templates/company/manufacturer_part_suppliers.html:46
#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
@@ -2305,26 +2317,25 @@ msgstr "Usuń części"
msgid "Delete Parts"
msgstr "Usuń części"
-#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:68
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:127
-#: templates/js/stock.js:1312
+#: templates/js/stock.js:1326
msgid "New Part"
msgstr "Nowy komponent"
-#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:69
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr "Utwórz nowy komponent"
-#: company/templates/company/detail_manufacturer_part.html:72
-#: company/views.py:71 part/templates/part/manufacturer.html:52
-#: part/templates/part/supplier.html:56
+#: company/templates/company/detail_manufacturer_part.html:74
+#: company/views.py:66 part/templates/part/manufacturer.html:52
+#: part/templates/part/supplier.html:55
msgid "New Manufacturer"
msgstr "Now producent"
-#: company/templates/company/detail_manufacturer_part.html:73
-#: company/views.py:284
+#: company/templates/company/detail_manufacturer_part.html:75
msgid "Create new Manufacturer"
msgstr "Utwórz nowego producenta"
@@ -2335,7 +2346,7 @@ msgstr "Zapasy dostawcy"
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:123 part/templates/part/category.html:137
-#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
+#: part/templates/part/stock.html:55 stock/templates/stock/location.html:163
msgid "Export"
msgstr "Eksportuj"
@@ -2347,26 +2358,24 @@ msgstr "Komponenty dostawcy"
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:44
-#: order/templates/order/purchase_order_detail.html:50
+#: part/templates/part/part_base.html:429
msgid "Create new supplier part"
msgstr "Utwórz nowego dostawcę części"
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1318
+#: part/templates/part/part_base.html:428 part/templates/part/supplier.html:17
+#: templates/js/stock.js:1332
msgid "New Supplier Part"
msgstr "Now dostawca części"
#: company/templates/company/detail_supplier_part.html:72
-#: company/templates/company/manufacturer_part_suppliers.html:82
-#: company/views.py:64 order/templates/order/purchase_orders.html:185
-#: part/templates/part/supplier.html:50
+#: company/templates/company/manufacturer_part_suppliers.html:96
+#: company/views.py:60 part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr "Nowy dostawca"
-#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:186
+#: company/templates/company/detail_supplier_part.html:73
msgid "Create new Supplier"
msgstr "Dodaj nowego dostawcę"
@@ -2401,20 +2410,19 @@ msgstr "Szczegóły części producenta"
msgid "Internal Part"
msgstr "Część wewnętrzna"
-#: company/templates/company/manufacturer_part_delete.html:6
-msgid "Are you sure you want to delete the following Manufacturer Parts?"
+#: company/templates/company/manufacturer_part_base.html:125
+msgid "Edit Manufacturer Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:36
-#, python-format
-msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
+#: company/templates/company/manufacturer_part_base.html:134
+msgid "Delete Manufacturer Part"
msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:87
-#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
-#: templates/navbar.html:35
+#: company/views.py:59 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 part/templates/part/prices.html:153
+#: templates/InvenTree/search.html:316 templates/navbar.html:35
msgid "Suppliers"
msgstr "Dostawcy"
@@ -2425,7 +2433,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:39 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:53
#: 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:128 templates/InvenTree/search.html:196
@@ -2451,9 +2459,11 @@ msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: company/templates/company/manufacturer_part_suppliers.html:142
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:191
+#: stock/views.py:855 templates/js/company.js:203 users/models.py:192
msgid "Delete"
msgstr "Usuń"
@@ -2471,11 +2481,27 @@ msgstr "Parametry"
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part_suppliers.html:83
+#: company/templates/company/manufacturer_part_suppliers.html:48
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:80
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:97
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
msgstr "Utwórz nowego dostawcę"
+#: company/templates/company/manufacturer_part_suppliers.html:127
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:139
+msgid "Delete Parameters"
+msgstr ""
+
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
msgid "Manufactured Parts"
@@ -2492,8 +2518,8 @@ msgstr "Dostarczone części"
#: stock/templates/stock/location.html:136
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
-#: templates/InvenTree/search.html:198 templates/js/stock.js:996
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2503,11 +2529,11 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: part/templates/part/navbar.html:101 part/templates/part/navbar.html:104
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:236
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
-#: users/models.py:45
+#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2516,10 +2542,10 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:213
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
-#: users/models.py:44
+#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2548,8 +2574,9 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
-#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:420
+#: stock/templates/stock/item_base.html:374 templates/js/company.js:505
+#: templates/js/stock.js:690
msgid "Supplier Part"
msgstr ""
@@ -2594,459 +2621,401 @@ msgid "Order Part"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:11
+#: part/templates/part/navbar.html:74
msgid "Pricing Information"
msgstr "Informacja cenowa"
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2918
+#: company/templates/company/supplier_part_pricing.html:19
+#: company/templates/company/supplier_part_pricing.html:118
+#: part/templates/part/prices.html:264 part/views.py:2788
msgid "Add Price Break"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:38
-#: part/templates/part/sale_prices.html:46
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:89
-#: part/templates/part/sale_prices.html:97
+#: company/templates/company/supplier_part_pricing.html:52 part/views.py:2850
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:66 part/views.py:2836
+msgid "Edit Price Break"
+msgstr "Edytuj przedział cenowy"
+
+#: company/templates/company/supplier_part_pricing.html:91
msgid "Edit price break"
msgstr "Edytuj przedział cenowy"
-#: company/templates/company/supplier_part_pricing.html:90
-#: part/templates/part/sale_prices.html:98
+#: company/templates/company/supplier_part_pricing.html:92
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:81
-#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
-#: templates/navbar.html:36
+#: company/views.py:65 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 part/templates/part/prices.html:157
+#: templates/InvenTree/search.html:306 templates/navbar.html:36
msgid "Manufacturers"
msgstr "Producenci"
-#: company/views.py:77 templates/InvenTree/search.html:336
+#: company/views.py:71 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr "Klienci"
-#: company/views.py:78 order/templates/order/sales_orders.html:187
+#: company/views.py:72
msgid "New Customer"
msgstr "Nowy klient"
-#: company/views.py:86
+#: company/views.py:79
msgid "Companies"
msgstr "Firmy"
-#: company/views.py:87
+#: company/views.py:80
msgid "New Company"
msgstr "Nowa firma"
-#: company/views.py:169 part/views.py:1115
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr "Pobierz obraz"
-#: company/views.py:198 part/views.py:1147
+#: company/views.py:190 part/views.py:1039
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:1154
+#: company/views.py:197 part/views.py:1046
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:1163
+#: company/views.py:206 part/views.py:1055
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: company/views.py:243
-msgid "Update Company Image"
-msgstr ""
-
-#: company/views.py:249
-msgid "Updated company image"
-msgstr ""
-
-#: company/views.py:259
-msgid "Edit Company"
-msgstr "Edytuj firmę"
-
-#: company/views.py:264
-msgid "Edited company information"
-msgstr ""
-
-#: company/views.py:287 order/templates/order/sales_orders.html:188
-msgid "Create new Customer"
-msgstr "Utwórz nowego klienta"
-
-#: company/views.py:289
-msgid "Create new Company"
-msgstr "Utwórz nową firmę"
-
-#: company/views.py:316
-msgid "Created new company"
-msgstr "Utwórz nową firmę"
-
-#: company/views.py:332
-msgid "Company was deleted"
-msgstr "Usunięto firmę"
-
-#: company/views.py:357
-msgid "Edit Manufacturer Part"
-msgstr ""
-
-#: company/views.py:366
+#: company/views.py:251
msgid "Create New Manufacturer Part"
msgstr ""
-#: company/views.py:440
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: company/views.py:514
-msgid "Add Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:548
-msgid "Edit Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:588
+#: company/views.py:334
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:639 templates/js/stock.js:1319
+#: company/views.py:385 templates/js/stock.js:1333
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:783
+#: company/views.py:529
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2922
-msgid "Added new price break"
-msgstr ""
-
-#: company/views.py:916 part/views.py:2966
-msgid "Edit Price Break"
-msgstr "Edytuj przedział cenowy"
-
-#: company/views.py:931 part/views.py:2980
-msgid "Delete Price Break"
-msgstr ""
-
#: label/api.py:56 report/api.py:201
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:103
+#: label/models.py:104
msgid "Label name"
msgstr "Nazwa etykiety"
-#: label/models.py:110
+#: label/models.py:111
msgid "Label description"
msgstr "Opis etykiety"
-#: label/models.py:117 stock/forms.py:202
+#: label/models.py:118 stock/forms.py:169
msgid "Label"
msgstr "Etykieta"
-#: label/models.py:118
+#: label/models.py:119
msgid "Label template file"
msgstr ""
-#: label/models.py:124 report/models.py:297
+#: label/models.py:125 report/models.py:297
msgid "Enabled"
msgstr "Aktywne"
-#: label/models.py:125
+#: label/models.py:126
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Width [mm]"
msgstr "Szerokość [mm]"
-#: label/models.py:131
+#: label/models.py:132
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Height [mm]"
msgstr "Wysokość [mm]"
-#: label/models.py:138
+#: label/models.py:139
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:144 report/models.py:290
+#: label/models.py:145 report/models.py:290
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:145
+#: label/models.py:146
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:244 label/models.py:297
+#: label/models.py:249 label/models.py:306
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:245 label/models.py:298 report/models.py:317
+#: label/models.py:250 label/models.py:307 report/models.py:317
#: report/models.py:440 report/models.py:474
msgid "Filters"
msgstr "Filtry"
-#: order/forms.py:31 order/templates/order/order_base.html:47
+#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr "Złóż zamówienie"
-#: order/forms.py:42 order/templates/order/order_base.html:54
+#: order/forms.py:41 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr "Oznacz zamówienie jako zakończone"
-#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
+#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr "Anuluj zamówienie"
-#: order/forms.py:75 order/templates/order/sales_order_base.html:58
+#: order/forms.py:74 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr "Wyślij zamówienie"
-#: order/forms.py:90
+#: order/forms.py:89
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:112
-msgid "Purchase Order reference"
-msgstr ""
-
-#: order/forms.py:119
-msgid "Target date for order delivery. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:147
-msgid "Enter sales order number"
-msgstr ""
-
-#: order/forms.py:154 order/models.py:472
-msgid "Target date for order completion. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:246
+#: order/forms.py:116
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:252
+#: order/forms.py:122
msgid "Enter quantity of stock items"
msgstr "Wprowadź ilość produktów magazynowych"
-#: order/models.py:98
-msgid "Order reference"
-msgstr "Odniesienie zamówienia"
-
-#: order/models.py:100
+#: order/models.py:154
msgid "Order description"
msgstr "Opis Zamówienia"
-#: order/models.py:102
+#: order/models.py:156
msgid "Link to external page"
msgstr "Link do zewnętrznej witryny"
-#: order/models.py:110 part/templates/part/detail.html:132
+#: order/models.py:164 part/templates/part/detail.html:132
msgid "Created By"
msgstr "Utworzony przez"
-#: order/models.py:117
+#: order/models.py:171
msgid "User or group responsible for this order"
msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
-#: order/models.py:122
+#: order/models.py:176
msgid "Order notes"
msgstr "Notatki do zamówienia"
-#: order/models.py:181 order/models.py:465
+#: order/models.py:243 order/models.py:530
+msgid "Order reference"
+msgstr "Odniesienie zamówienia"
+
+#: order/models.py:248 order/models.py:545
msgid "Purchase order status"
msgstr ""
-#: order/models.py:190
+#: order/models.py:257
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:193 order/templates/order/order_base.html:98
-#: templates/js/order.js:179
+#: order/models.py:260 order/templates/order/order_base.html:98
+#: templates/js/order.js:241
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:193
+#: order/models.py:260
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:200
+#: order/models.py:267
msgid "received by"
msgstr "odebrane przez"
-#: order/models.py:205
+#: order/models.py:272
msgid "Issue Date"
msgstr "Data wydania"
-#: order/models.py:206
+#: order/models.py:273
msgid "Date order was issued"
msgstr ""
-#: order/models.py:211
+#: order/models.py:278
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:212
+#: order/models.py:279
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:218
+#: order/models.py:285
msgid "Date order was completed"
msgstr ""
-#: order/models.py:242 part/views.py:1853 stock/models.py:300
-#: stock/models.py:1015
+#: order/models.py:309 part/views.py:1730 stock/models.py:308
+#: stock/models.py:1023
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:247
+#: order/models.py:314
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:345
+#: order/models.py:412
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:349
+#: order/models.py:416
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:351
+#: order/models.py:418
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:461
+#: order/models.py:541
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer Reference "
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:475 templates/js/order.js:303
+#: order/models.py:552
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:555 templates/js/order.js:370
msgid "Shipment Date"
msgstr "Data wysyłki"
-#: order/models.py:482
+#: order/models.py:562
msgid "shipped by"
msgstr "wysłane przez"
-#: order/models.py:526
+#: order/models.py:606
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:613
+#: order/models.py:703
msgid "Item quantity"
msgstr "Ilość elementów"
-#: order/models.py:615
+#: order/models.py:709
msgid "Line item reference"
msgstr ""
-#: order/models.py:617
+#: order/models.py:711
msgid "Line item notes"
msgstr ""
-#: order/models.py:643 order/models.py:710 templates/js/order.js:353
+#: order/models.py:741 order/models.py:812 templates/js/order.js:420
msgid "Order"
msgstr "Zamówienie"
-#: order/models.py:644 order/templates/order/order_base.html:9
+#: order/models.py:742 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
-#: templates/js/stock.js:669 templates/js/stock.js:1078
+#: stock/templates/stock/item_base.html:324 templates/js/order.js:210
+#: templates/js/stock.js:669 templates/js/stock.js:1092
msgid "Purchase Order"
msgstr ""
-#: order/models.py:658
+#: order/models.py:756
msgid "Supplier part"
msgstr ""
-#: order/models.py:661 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:219
+#: order/models.py:759 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:246
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr "Odebrane"
-#: order/models.py:661
+#: order/models.py:759
msgid "Number of items received"
msgstr ""
-#: order/models.py:667 stock/models.py:537
-#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
+#: order/models.py:765 part/templates/part/prices.html:166 stock/models.py:545
+#: stock/templates/stock/item_base.html:331 templates/js/stock.js:704
msgid "Purchase Price"
msgstr "Cena zakupu"
-#: order/models.py:668
+#: order/models.py:766
msgid "Unit purchase price"
msgstr "Cena zakupu jednostkowego"
-#: order/models.py:676
+#: order/models.py:774
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:718 part/templates/part/navbar.html:110
-#: part/templates/part/order_prices.html:108
-#: part/templates/part/part_pricing.html:97
+#: order/models.py:820 part/templates/part/part_pricing.html:97
+#: part/templates/part/prices.html:103 part/templates/part/prices.html:278
msgid "Sale Price"
msgstr "Cena sprzedaży"
-#: order/models.py:719
+#: order/models.py:821
msgid "Unit sale price"
msgstr "Jednostkowa cena sprzedaży"
-#: order/models.py:794 order/models.py:796
+#: order/models.py:900 order/models.py:902
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:800
+#: order/models.py:906
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:802
+#: order/models.py:908
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:805
+#: order/models.py:911
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:815
+#: order/models.py:921
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:820
+#: order/models.py:926
msgid "Line"
msgstr "Linia"
-#: order/models.py:831
+#: order/models.py:937
msgid "Item"
msgstr "Komponent"
-#: order/models.py:832
+#: order/models.py:938
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:835
+#: order/models.py:941
msgid "Enter stock allocation quantity"
msgstr ""
+#: order/serializers.py:139
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Sale price currency"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
#: templates/attachment_delete.html:5
@@ -3091,16 +3060,22 @@ msgstr "Status zamówienia"
msgid "Issued"
msgstr "Wydany"
-#: order/templates/order/order_base.html:180
-#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/order_base.html:188
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:199
+#: order/templates/order/purchase_order_detail.html:127
#: part/templates/part/category.html:217 part/templates/part/category.html:259
-#: stock/templates/stock/location.html:191 templates/js/stock.js:736
-#: templates/js/stock.js:1324
+#: part/templates/part/part_base.html:415
+#: stock/templates/stock/location.html:191 templates/js/stock.js:750
+#: templates/js/stock.js:1338
msgid "New Location"
msgstr "Nowa lokalizacja"
-#: order/templates/order/order_base.html:181
-#: order/templates/order/purchase_order_detail.html:101
+#: order/templates/order/order_base.html:200
+#: order/templates/order/purchase_order_detail.html:128
+#: part/templates/part/part_base.html:416
#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3253,7 +3228,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.js:205 templates/js/order.js:308
+#: templates/js/order.js:267 templates/js/order.js:375
msgid "Items"
msgstr "Przedmioty"
@@ -3277,7 +3252,6 @@ msgid "Purchase Order Attachments"
msgstr ""
#: order/templates/order/po_lineitem_delete.html:5
-#: order/templates/order/so_lineitem_delete.html:5
msgid "Are you sure you wish to delete this line item?"
msgstr ""
@@ -3295,40 +3269,52 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
-#: order/views.py:1410
+#: order/templates/order/purchase_order_detail.html:64
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:56
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:114
+#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/sales_order_detail.html:398
+msgid "Edit Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:110
+#: order/templates/order/sales_order_detail.html:408
+msgid "Delete Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:141
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/purchase_order_detail.html:169
+#: order/templates/order/sales_order_detail.html:233
msgid "Total"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:191
-#: order/templates/order/sales_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:218
+#: order/templates/order/sales_order_detail.html:256 templates/js/part.js:807
+#: templates/js/part.js:996
msgid "Unit Price"
msgstr "Cena jednostkowa"
-#: order/templates/order/purchase_order_detail.html:198
-#: order/templates/order/sales_order_detail.html:253
+#: order/templates/order/purchase_order_detail.html:225
+#: order/templates/order/sales_order_detail.html:263
msgid "Total price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:255
-#: order/templates/order/sales_order_detail.html:359
+#: order/templates/order/purchase_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:369
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:256
+#: order/templates/order/purchase_order_detail.html:283
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:261
+#: order/templates/order/purchase_order_detail.html:288
msgid "Receive line item"
msgstr ""
@@ -3343,7 +3329,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
-#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/models.py:326 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:157
#: part/templates/part/category_navbar.html:25
#: part/templates/part/category_navbar.html:32
@@ -3351,7 +3337,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:40
+#: users/models.py:41
msgid "Parts"
msgstr "Części"
@@ -3393,10 +3379,14 @@ msgstr ""
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100 templates/js/order.js:275
+#: order/templates/order/sales_order_base.html:100 templates/js/order.js:342
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_base.html:177
+msgid "Edit Sales Order"
+msgstr ""
+
#: order/templates/order/sales_order_cancel.html:8
#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
@@ -3412,69 +3402,69 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: order/templates/order/sales_order_detail.html:105 templates/js/bom.js:358
#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr "Akcje"
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: order/templates/order/sales_order_detail.html:112 templates/js/build.js:611
#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: order/templates/order/sales_order_detail.html:113 templates/js/build.js:613
#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:176
+#: order/templates/order/sales_order_detail.html:186
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:216
msgid "ID"
msgstr "Numer ID"
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: order/templates/order/sales_order_detail.html:284 templates/js/build.js:676
#: templates/js/build.js:943
msgid "Allocated"
msgstr "Przydzielono"
-#: order/templates/order/sales_order_detail.html:276
+#: order/templates/order/sales_order_detail.html:286
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:313
+#: order/templates/order/sales_order_detail.html:323
msgid "PO"
msgstr ""
-#: order/templates/order/sales_order_detail.html:343
+#: order/templates/order/sales_order_detail.html:353
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
+#: order/templates/order/sales_order_detail.html:356 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:349
+#: order/templates/order/sales_order_detail.html:359
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: order/templates/order/sales_order_detail.html:363 templates/js/build.js:732
#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:356
-#: order/templates/order/sales_order_detail.html:465
+#: order/templates/order/sales_order_detail.html:366
+#: order/templates/order/sales_order_detail.html:485
msgid "Calculate price"
msgstr "Oblicz cenę"
-#: order/templates/order/sales_order_detail.html:360
+#: order/templates/order/sales_order_detail.html:370
msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:471
+#: order/templates/order/sales_order_detail.html:491
msgid "Update Unit Price"
msgstr ""
@@ -3515,194 +3505,154 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:106
-msgid "Add Purchase Order Attachment"
-msgstr ""
-
-#: order/views.py:156
-msgid "Add Sales Order Attachment"
-msgstr ""
-
-#: order/views.py:348
-msgid "Create Sales Order"
-msgstr ""
-
-#: order/views.py:383
-msgid "Edit Purchase Order"
-msgstr ""
-
-#: order/views.py:403
-msgid "Edit Sales Order"
-msgstr ""
-
-#: order/views.py:419
+#: order/views.py:151
msgid "Cancel Order"
msgstr ""
-#: order/views.py:428 order/views.py:454
+#: order/views.py:160 order/views.py:186
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:431 order/views.py:457
+#: order/views.py:163 order/views.py:189
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:445
+#: order/views.py:177
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:471
+#: order/views.py:203
msgid "Issue Order"
msgstr ""
-#: order/views.py:480
+#: order/views.py:212
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:490
+#: order/views.py:222
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:501
+#: order/views.py:233
msgid "Complete Order"
msgstr ""
-#: order/views.py:517
+#: order/views.py:249
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:528
+#: order/views.py:260
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:538
+#: order/views.py:270
msgid "Ship Order"
msgstr "Wyślij zamówienie"
-#: order/views.py:554
+#: order/views.py:286
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:560
+#: order/views.py:292
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:339
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:804
+#: order/views.py:536
msgid "Receive Parts"
msgstr ""
-#: order/views.py:874
+#: order/views.py:606
msgid "Items received"
msgstr "Otrzymane przedmioty"
-#: order/views.py:888
+#: order/views.py:620
msgid "No destination set"
msgstr "Nie ustawiono miejsca docelowego"
-#: order/views.py:933
+#: order/views.py:665
msgid "Error converting quantity to number"
msgstr "Błąd konwersji ilości na liczbę"
-#: order/views.py:939
+#: order/views.py:671
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:945
+#: order/views.py:677
msgid "No lines specified"
msgstr ""
-#: order/views.py:1018
+#: order/views.py:750
msgid "Update prices"
msgstr ""
-#: order/views.py:1276
+#: order/views.py:1008
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1336
-msgid "Supplier part must be specified"
-msgstr ""
-
-#: order/views.py:1342
-msgid "Supplier must match for Part and Order"
-msgstr ""
-
-#: order/views.py:1473 order/views.py:1491
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/views.py:1507 order/views.py:1519
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/views.py:1512 order/views.py:1524
-msgid "Deleted line item"
-msgstr ""
-
-#: order/views.py:1537
+#: order/views.py:1061
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1582
+#: order/views.py:1106
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1598
+#: order/views.py:1122
msgid "Select line item"
msgstr ""
-#: order/views.py:1629
+#: order/views.py:1153
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1639
+#: order/views.py:1163
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1647
+#: order/views.py:1171
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1701
+#: order/views.py:1225
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1775
+#: order/views.py:1299
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1790
+#: order/views.py:1314
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1386
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1868
+#: order/views.py:1392
msgid "Price not found"
msgstr "Nie znaleziono ceny"
-#: order/views.py:1871
+#: order/views.py:1395
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1876
+#: order/views.py:1400
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:138 part/models.py:72 part/models.py:747
+#: part/bom.py:138 part/models.py:72 part/models.py:756
#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr "Domyślna lokalizacja"
@@ -3724,143 +3674,143 @@ msgstr ""
msgid "Error reading BOM file (incorrect row size)"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "File Format"
msgstr "Format pliku"
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "Select output file format"
msgstr "Wybierz format pliku wyjściowego"
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Cascading"
msgstr "Kaskadowe"
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Download cascading / multi-level BOM"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Levels"
msgstr "Poziomy"
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Select maximum number of BOM levels to export (0 = all levels)"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include Parameter Data"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include part parameters data in exported BOM"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include Stock Data"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include part stock data in exported BOM"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include Manufacturer Data"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include part manufacturer data in exported BOM"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include Supplier Data"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2191
+#: part/forms.py:106 part/models.py:2224
msgid "Parent Part"
msgstr "Część nadrzędna"
-#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:107 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr ""
-#: part/forms.py:129
+#: part/forms.py:113
msgid "Clear existing BOM items"
msgstr ""
-#: part/forms.py:135
+#: part/forms.py:119
msgid "Confirm BOM duplication"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "validate"
msgstr "potwierdź"
-#: part/forms.py:153
+#: part/forms.py:137
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "BOM file"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "Select BOM file to upload"
msgstr ""
-#: part/forms.py:184
+#: part/forms.py:168
msgid "Related Part"
msgstr ""
-#: part/forms.py:203
+#: part/forms.py:175
msgid "Select part category"
msgstr ""
-#: part/forms.py:220
+#: part/forms.py:192
msgid "Duplicate all BOM data for this part"
msgstr ""
-#: part/forms.py:221
+#: part/forms.py:193
msgid "Copy BOM"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:198
msgid "Duplicate all parameter data for this part"
msgstr ""
-#: part/forms.py:227
+#: part/forms.py:199
msgid "Copy Parameters"
msgstr ""
-#: part/forms.py:232
+#: part/forms.py:204
msgid "Confirm part creation"
msgstr ""
-#: part/forms.py:237
+#: part/forms.py:209
msgid "Include category parameter templates"
msgstr ""
-#: part/forms.py:242
+#: part/forms.py:214
msgid "Include parent categories parameter templates"
msgstr ""
-#: part/forms.py:322
+#: part/forms.py:294
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:298
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2286
+#: part/forms.py:316 part/models.py:2323
msgid "Sub part"
msgstr "Podczęść"
-#: part/forms.py:373
+#: part/forms.py:345
msgid "Input quantity for price calculation"
msgstr ""
@@ -3876,362 +3826,362 @@ msgstr "Domyślne słowa kluczowe"
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2237
+#: part/models.py:86 part/models.py:2270
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:32
+#: part/models.py:87 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:39
+#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:448 part/models.py:460
+#: part/models.py:457 part/models.py:469
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:557
+#: part/models.py:566
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:561
+#: part/models.py:570
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:566
+#: part/models.py:575
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:645
+#: part/models.py:654
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:670 part/templates/part/detail.html:22
+#: part/models.py:679 part/templates/part/detail.html:22
msgid "Part name"
msgstr ""
-#: part/models.py:677
+#: part/models.py:686
msgid "Is Template"
msgstr ""
-#: part/models.py:678
+#: part/models.py:687
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:689
+#: part/models.py:698
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:690 part/templates/part/detail.html:60
+#: part/models.py:699 part/templates/part/detail.html:60
msgid "Variant Of"
msgstr "Wariant"
-#: part/models.py:696
+#: part/models.py:705
msgid "Part description"
msgstr "Opis części"
-#: part/models.py:701 part/templates/part/category.html:82
+#: part/models.py:710 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: part/models.py:702
+#: part/models.py:711
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73
+#: part/models.py:718 part/models.py:2269 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:452
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:710
+#: part/models.py:719
msgid "Part category"
msgstr ""
-#: part/models.py:715 part/templates/part/detail.html:28
+#: part/models.py:724 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:87 templates/js/part.js:169
#: templates/js/part.js:296
msgid "IPN"
msgstr "IPN"
-#: part/models.py:716
+#: part/models.py:725
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:722
+#: part/models.py:731
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199
+#: part/models.py:732 part/templates/part/detail.html:35 report/models.py:199
#: templates/js/part.js:173
msgid "Revision"
msgstr "Wersja"
-#: part/models.py:745
+#: part/models.py:754
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:792 part/templates/part/detail.html:97
+#: part/models.py:801 part/templates/part/detail.html:97
msgid "Default Supplier"
msgstr ""
-#: part/models.py:793
+#: part/models.py:802
msgid "Default supplier part"
msgstr ""
-#: part/models.py:800
+#: part/models.py:809
msgid "Default Expiry"
msgstr ""
-#: part/models.py:801
+#: part/models.py:810
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:806 part/templates/part/detail.html:113
+#: part/models.py:815 part/templates/part/detail.html:113
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
-#: part/models.py:807
+#: part/models.py:816
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:814
+#: part/models.py:823
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:820
+#: part/models.py:829
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:835
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:832
+#: part/models.py:841
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:837
+#: part/models.py:846
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:842
+#: part/models.py:851
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:846 part/templates/part/detail.html:227
+#: part/models.py:855 part/templates/part/detail.html:227
#: templates/js/table_filters.js:21 templates/js/table_filters.js:65
-#: templates/js/table_filters.js:241 templates/js/table_filters.js:310
+#: templates/js/table_filters.js:246 templates/js/table_filters.js:315
msgid "Active"
msgstr "Aktywny"
-#: part/models.py:847
+#: part/models.py:856
msgid "Is this part active?"
msgstr "Czy ta część jest aktywna?"
-#: part/models.py:852
+#: part/models.py:861
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:857
+#: part/models.py:866
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "BOM checksum"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:863
+#: part/models.py:872
msgid "BOM checked by"
msgstr ""
-#: part/models.py:865
+#: part/models.py:874
msgid "BOM checked date"
msgstr ""
-#: part/models.py:869
+#: part/models.py:878
msgid "Creation User"
msgstr ""
-#: part/models.py:1608
+#: part/models.py:1617
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2063
+#: part/models.py:2088
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2080
+#: part/models.py:2105
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117
+#: part/models.py:2125 templates/js/part.js:717 templates/js/stock.js:117
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:2101
+#: part/models.py:2126
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2106
+#: part/models.py:2131
msgid "Test Description"
msgstr ""
-#: part/models.py:2107
+#: part/models.py:2132
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2112 templates/js/part.js:726
-#: templates/js/table_filters.js:227
+#: part/models.py:2137 templates/js/part.js:726
+#: templates/js/table_filters.js:232
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:2113
+#: part/models.py:2138
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2118 templates/js/part.js:734
+#: part/models.py:2143 templates/js/part.js:734
msgid "Requires Value"
msgstr ""
-#: part/models.py:2119
+#: part/models.py:2144
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2124 templates/js/part.js:741
+#: part/models.py:2149 templates/js/part.js:741
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2150
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2187
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2192
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2165
+#: part/models.py:2194
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2193 part/models.py:2242 part/models.py:2243
+#: part/models.py:2226 part/models.py:2275 part/models.py:2276
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Data"
msgstr "Dane"
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2247 templates/InvenTree/settings/category.html:67
+#: part/models.py:2280 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:2248
+#: part/models.py:2281
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2278
+#: part/models.py:2315
msgid "Select parent part"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2324
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2293
+#: part/models.py:2330
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2332 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2295
+#: part/models.py:2332
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2298
+#: part/models.py:2335
msgid "Overage"
msgstr ""
-#: part/models.py:2299
+#: part/models.py:2336
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2302
+#: part/models.py:2339
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2305
+#: part/models.py:2342
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:2307
+#: part/models.py:2344
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2348 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2312
+#: part/models.py:2349
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:287
+#: part/models.py:2354 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2318
+#: part/models.py:2355
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1859 part/views.py:1911
-#: stock/models.py:290
+#: part/models.py:2431 part/views.py:1736 part/views.py:1788
+#: stock/models.py:298
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2403 part/models.py:2405
+#: part/models.py:2440 part/models.py:2442
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2445
msgid "BOM Item"
msgstr ""
-#: part/models.py:2527
+#: part/models.py:2564
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:2563
+#: part/models.py:2600
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4247,14 +4197,6 @@ msgstr ""
msgid "Part Attachments"
msgstr ""
-#: part/templates/part/bom-delete.html:6
-msgid "Are you sure you want to delete this BOM item?"
-msgstr ""
-
-#: part/templates/part/bom-delete.html:8
-msgid "Deleting this entry will remove the BOM row from the following part"
-msgstr ""
-
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
@@ -4303,7 +4245,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:2154
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr ""
@@ -4319,8 +4261,8 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:590
-#: templates/js/stock.js:1313
+#: part/templates/part/bom.html:160 part/views.py:450
+#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr ""
@@ -4401,7 +4343,7 @@ msgstr ""
msgid "All parts"
msgstr "Wszystkie części"
-#: part/templates/part/category.html:38 part/views.py:2564
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr "Stwórz nową kategorię komponentów"
@@ -4461,11 +4403,12 @@ msgid "View grid display"
msgstr ""
#: part/templates/part/category.html:218
-#: stock/templates/stock/location.html:192 templates/js/stock.js:737
+#: stock/templates/stock/location.html:192 templates/js/stock.js:751
msgid "Create new location"
msgstr ""
#: part/templates/part/category.html:223 part/templates/part/category.html:253
+#: part/templates/part/part_base.html:378
msgid "New Category"
msgstr ""
@@ -4477,10 +4420,18 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:260 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1223
msgid "Create new Stock Location"
msgstr "Utwórz nową lokalizację magazynową"
+#: part/templates/part/category.html:279
+msgid "Select parent category"
+msgstr ""
+
+#: part/templates/part/category.html:286 part/views.py:2389
+msgid "Edit Part Category"
+msgstr ""
+
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4526,7 +4477,7 @@ msgstr ""
msgid "Part Parameters"
msgstr "Parametry części"
-#: part/templates/part/copy_part.html:9 part/views.py:466
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr "Duplikuj część"
@@ -4639,36 +4590,6 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:101
-msgid "Internal Price Information"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:19 part/views.py:2989
-msgid "Add Internal Price Break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:28 templates/403.html:5
-#: templates/403.html:11
-msgid "Permission Denied"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:31 templates/403.html:14
-msgid "You do not have permission to view this page."
-msgstr ""
-
-#: part/templates/part/internal_prices.html:59
-msgid "No internal price break information found"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:110
-msgid "Edit internal price break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:111
-msgid "Delete internal price break"
-msgstr ""
-
#: part/templates/part/manufacturer.html:11
msgid "Part Manufacturers"
msgstr ""
@@ -4678,7 +4599,7 @@ msgid "Delete manufacturer parts"
msgstr ""
#: part/templates/part/manufacturer.html:53
-#: part/templates/part/supplier.html:57
+#: part/templates/part/supplier.html:56
msgid "Create new manufacturer"
msgstr ""
@@ -4702,125 +4623,27 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
-msgid "Order Price Information"
+#: part/templates/part/navbar.html:77
+msgid "Prices"
msgstr ""
-#: part/templates/part/navbar.html:78
-msgid "Order Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
-#: part/templates/part/part_pricing.html:82
-msgid "Internal Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:107
-msgid "Sales Price Information"
-msgstr ""
-
-#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:109 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:112 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
+#: part/templates/part/navbar.html:117 part/templates/part/navbar.html:120
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:130 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:25
-#: part/templates/part/part_base.html:282
-msgid "Calculate"
-msgstr ""
-
-#: part/templates/part/order_prices.html:32
-msgid "Pricing ranges"
-msgstr ""
-
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/part_pricing.html:22
-msgid "Supplier Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:38
-#: part/templates/part/order_prices.html:63
-#: part/templates/part/order_prices.html:95
-#: part/templates/part/order_prices.html:109
-#: part/templates/part/part_pricing.html:26
-#: part/templates/part/part_pricing.html:52
-#: part/templates/part/part_pricing.html:85
-#: part/templates/part/part_pricing.html:100
-msgid "Unit Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:45
-#: part/templates/part/order_prices.html:70
-#: part/templates/part/order_prices.html:100
-#: part/templates/part/order_prices.html:114
-#: part/templates/part/part_pricing.html:32
-#: part/templates/part/part_pricing.html:58
-#: part/templates/part/part_pricing.html:89
-#: part/templates/part/part_pricing.html:104
-msgid "Total Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:53
-#: part/templates/part/part_pricing.html:40
-msgid "No supplier pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:129
-#: part/templates/part/part_pricing.html:48
-msgid "BOM Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:78
-#: part/templates/part/part_pricing.html:66
-msgid "Note: BOM pricing is incomplete for this part"
-msgstr ""
-
-#: part/templates/part/order_prices.html:85
-#: part/templates/part/part_pricing.html:73
-msgid "No BOM pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:123
-#: part/templates/part/part_pricing.html:113
-msgid "No pricing information is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:139
-msgid "Stock Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:147
-msgid "No stock pricing history is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:166
-#, python-format
-msgid "Single Price - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:178
-#, python-format
-msgid "Single Price Difference - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:190
-#, python-format
-msgid "Part Single Price - %(currency)s"
-msgstr ""
-
#: part/templates/part/params.html:17
msgid "Add new parameter"
msgstr ""
@@ -4841,8 +4664,8 @@ msgstr ""
msgid "Part List"
msgstr ""
-#: part/templates/part/part_base.html:26 templates/js/company.js:156
-#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161
+#: part/templates/part/part_base.html:26 templates/js/company.js:280
+#: templates/js/company.js:480 templates/js/part.js:84 templates/js/part.js:161
msgid "Inactive"
msgstr ""
@@ -4905,7 +4728,7 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131
+#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:132
msgid "Required for Build Orders"
msgstr ""
@@ -4926,10 +4749,86 @@ msgstr ""
msgid "Building"
msgstr ""
+#: part/templates/part/part_base.html:285 part/templates/part/prices.html:131
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:379
+msgid "Create New Part Category"
+msgstr ""
+
+#: part/templates/part/part_base.html:387
+msgid "New Parent"
+msgstr ""
+
+#: part/templates/part/part_base.html:435
+msgid "Edit Part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:27
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:31
+#: part/templates/part/prices.html:58 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:107
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:89
+#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:38
+#: part/templates/part/prices.html:65 part/templates/part/prices.html:95
+#: part/templates/part/prices.html:112
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:46
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:55
+#: part/templates/part/prices.html:235
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:73
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:80
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:113
+#: part/templates/part/prices.html:121
+msgid "No pricing information is available for this part."
+msgstr ""
+
#: part/templates/part/part_tests.html:17
msgid "Add Test Template"
msgstr ""
+#: part/templates/part/part_tests.html:61
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:79
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:91
+msgid "Delete Test Result Template"
+msgstr ""
+
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr ""
@@ -4964,12 +4863,98 @@ msgstr ""
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
-#: part/templates/part/related.html:18
-msgid "Add Related"
+#: part/templates/part/prices.html:12
+msgid "General Price Information"
msgstr ""
-#: part/templates/part/sale_prices.html:10
-msgid "Sell Price Information"
+#: part/templates/part/prices.html:22
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:28
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:29
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:56
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:104
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:105
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:127
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:146
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:147 part/templates/part/prices.html:167
+#: part/templates/part/prices.html:193 part/templates/part/prices.html:224
+#: part/templates/part/prices.html:251 part/templates/part/prices.html:279
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:172
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:180
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:192
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:206 part/views.py:2859
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:223
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:250
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:290
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:340
+#, python-format
+msgid "Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:352
+#, python-format
+msgid "Single Price Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:364
+#, python-format
+msgid "Part Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:464
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/related.html:18
+msgid "Add Related"
msgstr ""
#: part/templates/part/sales_orders.html:18
@@ -5043,216 +5028,180 @@ msgstr ""
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:164
-msgid "Add part attachment"
-msgstr ""
-
-#: part/views.py:217 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr ""
-
-#: part/views.py:221
-msgid "Part attachment updated"
-msgstr ""
-
-#: part/views.py:236
-msgid "Delete Part Attachment"
-msgstr ""
-
-#: part/views.py:244
-msgid "Deleted part attachment"
-msgstr ""
-
-#: part/views.py:253
-msgid "Create Test Template"
-msgstr ""
-
-#: part/views.py:280
-msgid "Edit Test Template"
-msgstr ""
-
-#: part/views.py:294
-msgid "Delete Test Template"
-msgstr ""
-
-#: part/views.py:301
+#: part/views.py:161
msgid "Set Part Category"
msgstr ""
-#: part/views.py:351
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:386
+#: part/views.py:246
msgid "Create Variant"
msgstr ""
-#: part/views.py:471
+#: part/views.py:331
msgid "Copied part"
msgstr ""
-#: part/views.py:525 part/views.py:663
+#: part/views.py:385 part/views.py:523
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:595
+#: part/views.py:455
msgid "Created new part"
msgstr ""
-#: part/views.py:763
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1092
+#: part/views.py:925
+msgid "None"
+msgstr ""
+
+#: part/views.py:984
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1194
-msgid "Upload Part Image"
-msgstr ""
-
-#: part/views.py:1200 part/views.py:1235
-msgid "Updated part image"
-msgstr ""
-
-#: part/views.py:1209
+#: part/views.py:1086
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1238
+#: part/views.py:1112
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:1115
msgid "Part image not found"
msgstr ""
-#: part/views.py:1249
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1284
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1314
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1335
+#: part/views.py:1212
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1356
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1367
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1501
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1862
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1887 part/views.py:1890
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr ""
-#: part/views.py:1896
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1934
+#: part/views.py:1811
msgid "Select a part"
msgstr ""
-#: part/views.py:1940
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1944
+#: part/views.py:1821
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2090
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2222
+#: part/views.py:2099
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2363
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2373
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2380
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2388
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2438
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2452
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2512
-msgid "Edit Part Category"
-msgstr ""
-
-#: part/views.py:2550
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2556
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2608
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2709
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2765
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2784
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2854
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2910
-msgid "Confim BOM item deletion"
+#: part/views.py:2792
+msgid "Added new price break"
msgstr ""
-#: part/views.py:2998
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3006
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5358,17 +5307,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1739
+#: stock/models.py:1759
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1745
+#: stock/models.py:1765
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:1012
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr ""
@@ -5380,287 +5329,287 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:212
+#: stock/api.py:211
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:280
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
+#: stock/forms.py:81 stock/forms.py:385 stock/models.py:513
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:419
+#: stock/forms.py:82 stock/forms.py:386
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:118
+#: stock/forms.py:85
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:169
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:173 stock/forms.py:349
+#: stock/forms.py:140 stock/forms.py:316
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:203 stock/forms.py:259
+#: stock/forms.py:170 stock/forms.py:226
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:75
+#: stock/forms.py:234 templates/js/table_filters.js:75
#: templates/js/table_filters.js:138
msgid "Include sublocations"
msgstr ""
-#: stock/forms.py:267
+#: stock/forms.py:234
msgid "Include stock items in sub locations"
msgstr ""
-#: stock/forms.py:302
+#: stock/forms.py:269
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:309
+#: stock/forms.py:276
msgid "Stock quantity to assign"
msgstr ""
-#: stock/forms.py:337
+#: stock/forms.py:304
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:347
+#: stock/forms.py:314
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/forms.py:375
+#: stock/forms.py:342
msgid "Destination stock location"
msgstr ""
-#: stock/forms.py:377
+#: stock/forms.py:344
msgid "Add note (required)"
msgstr ""
-#: stock/forms.py:381 stock/views.py:852 stock/views.py:1051
+#: stock/forms.py:348 stock/views.py:705 stock/views.py:904
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/forms.py:381
+#: stock/forms.py:348
msgid "Confirm movement of stock items"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set Default Location"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:52 stock/models.py:542
+#: stock/models.py:56 stock/models.py:550
msgid "Owner"
msgstr ""
-#: stock/models.py:53 stock/models.py:543
+#: stock/models.py:57 stock/models.py:551
msgid "Select Owner"
msgstr ""
-#: stock/models.py:271
+#: stock/models.py:279
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:307
+#: stock/models.py:315
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:317 stock/models.py:326
+#: stock/models.py:325 stock/models.py:334
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:318
+#: stock/models.py:326
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:340
+#: stock/models.py:348
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:346
+#: stock/models.py:354
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:361
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:395
+#: stock/models.py:403
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:412
msgid "Base part"
msgstr ""
-#: stock/models.py:413
+#: stock/models.py:421
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:426 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:421
+#: stock/models.py:429
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:428
+#: stock/models.py:436
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:433 stock/templates/stock/item_base.html:270
+#: stock/models.py:441 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:436
+#: stock/models.py:444
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:452
+#: stock/models.py:460
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:472
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:476
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:477
+#: stock/models.py:485
msgid "Source Build"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:487
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:490
+#: stock/models.py:498
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:493
+#: stock/models.py:501
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:499
+#: stock/models.py:507
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:514
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:529 stock/templates/stock/item_notes.html:13
+#: stock/models.py:537 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:538
+#: stock/models.py:546
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1006
+#: stock/models.py:1014
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1012
+#: stock/models.py:1020
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1018
+#: stock/models.py:1026
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1021
+#: stock/models.py:1029
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1024
+#: stock/models.py:1032
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1031
+#: stock/models.py:1039
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1197
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1679
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1716
+#: stock/models.py:1736
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1722
+#: stock/models.py:1742
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1740
+#: stock/models.py:1760
msgid "Test name"
msgstr ""
-#: stock/models.py:1746 templates/js/table_filters.js:217
+#: stock/models.py:1766 templates/js/table_filters.js:222
msgid "Test result"
msgstr ""
-#: stock/models.py:1752
+#: stock/models.py:1772
msgid "Test output value"
msgstr ""
-#: stock/models.py:1759
+#: stock/models.py:1779
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1785
msgid "Test notes"
msgstr ""
@@ -5850,6 +5799,10 @@ msgstr ""
msgid "No stocktake performed"
msgstr ""
+#: stock/templates/stock/item_base.html:499
+msgid "Edit Stock Status"
+msgstr ""
+
#: stock/templates/stock/item_childs.html:12
msgid "Child Stock Items"
msgstr ""
@@ -5909,6 +5862,19 @@ msgstr ""
msgid "Add Test Data"
msgstr ""
+#: stock/templates/stock/item_tests.html:86
+#: stock/templates/stock/item_tests.html:111
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:131
+msgid "Edit Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:145
+msgid "Delete Test Result"
+msgstr ""
+
#: stock/templates/stock/location.html:20
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
@@ -5957,7 +5923,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:97 users/models.py:41
+#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -5997,7 +5963,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1196
msgid "Convert Stock Item"
msgstr ""
@@ -6030,8 +5996,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
-#: stock/views.py:1830
+#: stock/views.py:230 stock/views.py:1175 stock/views.py:1297
+#: stock/views.py:1662
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -6039,208 +6005,188 @@ msgstr ""
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:265
-msgid "Add Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:311
-msgid "Edit Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:327
-msgid "Delete Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:343
+#: stock/views.py:264
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:273
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:297
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:385
+#: stock/views.py:306
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:396
+#: stock/views.py:317
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:407
+#: stock/views.py:328
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:345
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:444
-msgid "Add Test Result"
-msgstr ""
-
-#: stock/views.py:484
-msgid "Edit Test Result"
-msgstr ""
-
-#: stock/views.py:501
-msgid "Delete Test Result"
-msgstr ""
-
-#: stock/views.py:509
+#: stock/views.py:362
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:630
+#: stock/views.py:483
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:656
+#: stock/views.py:509
msgid "Install Stock Item"
msgstr ""
-#: stock/views.py:755
+#: stock/views.py:608
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:863
+#: stock/views.py:716
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:888
+#: stock/views.py:741
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Take"
msgstr ""
-#: stock/views.py:1001
+#: stock/views.py:854
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:187
+#: stock/views.py:854 users/models.py:188
msgid "Add"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:855
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:1031
+#: stock/views.py:884
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:1036
+#: stock/views.py:889
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:1043
+#: stock/views.py:896
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:1107
+#: stock/views.py:960
msgid "No action performed"
msgstr ""
-#: stock/views.py:1122
+#: stock/views.py:975
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:1137
+#: stock/views.py:990
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:1150
+#: stock/views.py:1003
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:1190
+#: stock/views.py:1043
msgid "No items were moved"
msgstr ""
-#: stock/views.py:1193
+#: stock/views.py:1046
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:1212
+#: stock/views.py:1065
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1222
-msgid "Edit Stock Item Status"
-msgstr ""
-
-#: stock/views.py:1245
+#: stock/views.py:1077
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1482
+#: stock/views.py:1314
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:327
+#: stock/views.py:1407 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1717
+#: stock/views.py:1549
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1799
+#: stock/views.py:1631
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1899
+#: stock/views.py:1731
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1912
+#: stock/views.py:1744
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1923
+#: stock/views.py:1755
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1930
+#: stock/views.py:1762
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1939
+#: stock/views.py:1771
msgid "Add Stock Tracking Entry"
msgstr ""
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
msgstr ""
@@ -6269,35 +6215,39 @@ msgstr ""
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:145
-msgid "Expired Stock"
+#: templates/InvenTree/index.html:131
+msgid "Depleted Stock"
msgstr ""
#: templates/InvenTree/index.html:146
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:147
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:192
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:185
+#: templates/InvenTree/index.html:193
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:214
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:207
+#: templates/InvenTree/index.html:215
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:237
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:230
+#: templates/InvenTree/index.html:238
msgid "Overdue Sales Orders"
msgstr ""
@@ -6582,24 +6532,12 @@ msgstr ""
msgid "copy version information"
msgstr ""
-#: templates/about.html:100 templates/js/modals.js:568
-#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54
-#: templates/modals.html:97
+#: templates/about.html:100 templates/js/modals.js:34
+#: templates/js/modals.js:677 templates/js/modals.js:970
+#: templates/modals.html:29 templates/modals.html:54 templates/modals.html:97
msgid "Close"
msgstr ""
-#: templates/attachment_table.html:6
-msgid "Add Attachment"
-msgstr ""
-
-#: templates/attachment_table.html:17
-msgid "Uploaded"
-msgstr ""
-
-#: templates/attachment_table.html:35
-msgid "Delete attachment"
-msgstr ""
-
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6616,6 +6554,22 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
+#: templates/js/attachment.js:16
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/attachment.js:56
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/attachment.js:69
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/attachment.js:76
+msgid "Delete attachment"
+msgstr ""
+
#: templates/js/barcode.js:8
msgid "Scan barcode data here using wedge scanner"
msgstr ""
@@ -6644,7 +6598,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:921
+#: templates/js/barcode.js:119 templates/js/modals.js:1030
msgid "Invalid server response"
msgstr ""
@@ -6744,7 +6698,7 @@ msgstr ""
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:372
+#: templates/js/bom.js:372 templates/js/bom.js:519
msgid "Delete BOM Item"
msgstr ""
@@ -6772,7 +6726,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/build.js:222 templates/js/order.js:382
+#: templates/js/build.js:222 templates/js/order.js:449
msgid "Location not specified"
msgstr ""
@@ -6798,7 +6752,7 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
-#: templates/js/stock.js:514 templates/js/stock.js:966
+#: templates/js/stock.js:514 templates/js/stock.js:980
msgid "Select"
msgstr ""
@@ -6810,45 +6764,69 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/company.js:74
+#: templates/js/company.js:45
+msgid "Edit Company"
+msgstr "Edytuj firmę"
+
+#: templates/js/company.js:66
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/company.js:143
msgid "Parts Supplied"
msgstr ""
-#: templates/js/company.js:83
+#: templates/js/company.js:152
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/company.js:96
+#: templates/js/company.js:165
msgid "No company information found"
msgstr ""
-#: templates/js/company.js:129
+#: templates/js/company.js:183
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/company.js:200
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/company.js:253
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/company.js:148 templates/js/company.js:347
+#: templates/js/company.js:272 templates/js/company.js:472
#: templates/js/part.js:68 templates/js/part.js:153
msgid "Template part"
msgstr ""
-#: templates/js/company.js:152 templates/js/company.js:351
+#: templates/js/company.js:276 templates/js/company.js:476
#: templates/js/part.js:72 templates/js/part.js:157
msgid "Assembled part"
msgstr ""
-#: templates/js/company.js:226
+#: templates/js/company.js:350
msgid "No parameters found"
msgstr ""
-#: templates/js/company.js:262
+#: templates/js/company.js:386
msgid "Edit parameter"
msgstr ""
-#: templates/js/company.js:263
+#: templates/js/company.js:387
msgid "Delete parameter"
msgstr ""
-#: templates/js/company.js:328
+#: templates/js/company.js:406
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/company.js:417
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/company.js:453
msgid "No supplier parts found"
msgstr ""
@@ -6876,6 +6854,83 @@ msgstr ""
msgid "Create filter"
msgstr ""
+#: templates/js/forms.js:278 templates/js/forms.js:291
+#: templates/js/forms.js:303 templates/js/forms.js:315
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/forms.js:279
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:292
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:304
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:316
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:583 templates/js/modals.js:1040
+msgid "No Response"
+msgstr ""
+
+#: templates/js/forms.js:584 templates/js/modals.js:1041
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/forms.js:590 templates/js/modals.js:1050
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/forms.js:591 templates/js/modals.js:1051
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/forms.js:597 templates/js/modals.js:1055
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/forms.js:598 templates/js/modals.js:1056
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/forms.js:604 templates/js/modals.js:1060
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/forms.js:605 templates/js/modals.js:1061
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/forms.js:611 templates/js/modals.js:1065
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/forms.js:612 templates/js/modals.js:1066
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/forms.js:618 templates/js/modals.js:1069
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/forms.js:788 templates/modals.html:21 templates/modals.html:47
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/forms.js:1161
+msgid "Searching"
+msgstr ""
+
+#: templates/js/forms.js:1301
+msgid "Clear input"
+msgstr ""
+
#: templates/js/label.js:10 templates/js/report.js:98
msgid "Select Stock Items"
msgstr ""
@@ -6916,112 +6971,102 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:265
-msgid "Waiting for server..."
-msgstr ""
-
-#: templates/js/modals.js:424
-msgid "Show Error Information"
-msgstr ""
-
-#: templates/js/modals.js:491 templates/modals.html:76
-msgid "Accept"
-msgstr ""
-
-#: templates/js/modals.js:492 templates/modals.html:75
+#: templates/js/modals.js:59 templates/js/modals.js:105
+#: templates/js/modals.js:601 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:556
-msgid "Loading Data"
-msgstr ""
-
-#: templates/js/modals.js:567 templates/js/modals.js:860
+#: templates/js/modals.js:60 templates/js/modals.js:104
+#: templates/js/modals.js:676 templates/js/modals.js:969
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:103
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/modals.js:374
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/modals.js:533
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/modals.js:600 templates/modals.html:76
+msgid "Accept"
+msgstr ""
+
+#: templates/js/modals.js:665
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/modals.js:920
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:920
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:824
+#: templates/js/modals.js:933
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:921
+#: templates/js/modals.js:1030
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:931
-msgid "No Response"
-msgstr ""
-
-#: templates/js/modals.js:932
-msgid "No response from the InvenTree server"
-msgstr ""
-
-#: templates/js/modals.js:936
+#: templates/js/modals.js:1045
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:937
+#: templates/js/modals.js:1046
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:941
-msgid "Error 401: Not Authenticated"
+#: templates/js/model_renderers.js:21
+msgid "Company ID"
msgstr ""
-#: templates/js/modals.js:942
-msgid "Authentication credentials not supplied"
+#: templates/js/model_renderers.js:63
+msgid "Location ID"
msgstr ""
-#: templates/js/modals.js:946
-msgid "Error 403: Permission Denied"
+#: templates/js/model_renderers.js:90
+msgid "Part ID"
msgstr ""
-#: templates/js/modals.js:947
-msgid "You do not have the required permissions to access this function"
+#: templates/js/model_renderers.js:126
+msgid "Category ID"
msgstr ""
-#: templates/js/modals.js:951
-msgid "Error 404: Resource Not Found"
+#: templates/js/model_renderers.js:150
+msgid "Supplier Part ID"
msgstr ""
-#: templates/js/modals.js:952
-msgid "The requested resource could not be located on the server"
+#: templates/js/order.js:31
+msgid "Create Sales Order"
msgstr ""
-#: templates/js/modals.js:956
-msgid "Error 408: Timeout"
-msgstr ""
-
-#: templates/js/modals.js:957
-msgid "Connection timeout while requesting data from server"
-msgstr ""
-
-#: templates/js/modals.js:960
-msgid "Error requesting form data"
-msgstr ""
-
-#: templates/js/order.js:138
+#: templates/js/order.js:200
msgid "No purchase orders found"
msgstr ""
-#: templates/js/order.js:162 templates/js/order.js:257
+#: templates/js/order.js:224 templates/js/order.js:319
msgid "Order is overdue"
msgstr ""
-#: templates/js/order.js:234
+#: templates/js/order.js:296
msgid "No sales orders found"
msgstr ""
-#: templates/js/order.js:343
+#: templates/js/order.js:333
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/order.js:410
msgid "No sales order allocations found"
msgstr ""
@@ -7061,11 +7106,11 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:476 templates/js/table_filters.js:323
+#: templates/js/part.js:476 templates/js/table_filters.js:328
msgid "Low stock"
msgstr ""
-#: templates/js/part.js:660 templates/js/stock.js:990
+#: templates/js/part.js:660 templates/js/stock.js:1004
msgid "Path"
msgstr ""
@@ -7085,7 +7130,22 @@ msgstr ""
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/part.js:806
+#: templates/js/part.js:786
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/part.js:839
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:840
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:959
msgid "Single Price Difference"
msgstr ""
@@ -7263,75 +7323,75 @@ msgstr ""
msgid "Stocktake"
msgstr ""
-#: templates/js/stock.js:853
+#: templates/js/stock.js:867
msgid "Stock Status"
msgstr ""
-#: templates/js/stock.js:868
+#: templates/js/stock.js:882
msgid "Set Stock Status"
msgstr ""
-#: templates/js/stock.js:882
+#: templates/js/stock.js:896
msgid "Select Status Code"
msgstr ""
-#: templates/js/stock.js:883
+#: templates/js/stock.js:897
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1022
+#: templates/js/stock.js:1036
msgid "Invalid date"
msgstr ""
-#: templates/js/stock.js:1069
+#: templates/js/stock.js:1083
msgid "Location no longer exists"
msgstr ""
-#: templates/js/stock.js:1088
+#: templates/js/stock.js:1102
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/stock.js:1107
+#: templates/js/stock.js:1121
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/stock.js:1125
+#: templates/js/stock.js:1139
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/stock.js:1148
+#: templates/js/stock.js:1162
msgid "Added"
msgstr ""
-#: templates/js/stock.js:1156
+#: templates/js/stock.js:1170
msgid "Removed"
msgstr ""
-#: templates/js/stock.js:1188
+#: templates/js/stock.js:1202
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1200
+#: templates/js/stock.js:1214
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1201
+#: templates/js/stock.js:1215
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1325
+#: templates/js/stock.js:1339
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1366
+#: templates/js/stock.js:1380
msgid "No installed items"
msgstr ""
-#: templates/js/stock.js:1389
+#: templates/js/stock.js:1403
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1417
+#: templates/js/stock.js:1431
msgid "Uninstall Stock Item"
msgstr ""
@@ -7352,7 +7412,7 @@ msgid "Include locations"
msgstr ""
#: templates/js/table_filters.js:86 templates/js/table_filters.js:87
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:305
msgid "Include subcategories"
msgstr ""
@@ -7385,7 +7445,7 @@ msgstr ""
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:290
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:295
msgid "Active parts"
msgstr ""
@@ -7457,43 +7517,51 @@ msgstr ""
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:236
+#: templates/js/table_filters.js:211
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/table_filters.js:212
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/table_filters.js:241
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
+#: templates/js/table_filters.js:265 templates/js/table_filters.js:282
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:306
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:305
+#: templates/js/table_filters.js:310
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:311
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:311
+#: templates/js/table_filters.js:316
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:319
+#: templates/js/table_filters.js:324
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:335
+#: templates/js/table_filters.js:340
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:347
+#: templates/js/table_filters.js:352
msgid "Purchasable"
msgstr ""
@@ -7550,10 +7618,6 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:47
-msgid "Form errors exist"
-msgstr ""
-
#: templates/navbar.html:13
msgid "Toggle navigation"
msgstr ""
@@ -7570,7 +7634,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:38
+#: templates/navbar.html:77 users/models.py:39
msgid "Admin"
msgstr ""
@@ -7790,35 +7854,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:174
+#: users/models.py:175
msgid "Permission set"
msgstr ""
-#: users/models.py:182
+#: users/models.py:183
msgid "Group"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "View"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "Permission to view items"
msgstr ""
-#: users/models.py:187
+#: users/models.py:188
msgid "Permission to add items"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Change"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:191
+#: users/models.py:192
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index ea71217a29..af63aef8e1 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-01 22:35+0000\n"
-"PO-Revision-Date: 2021-07-01 22:38\n"
+"POT-Creation-Date: 2021-07-03 12:15+0000\n"
+"PO-Revision-Date: 2021-07-03 12:44\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -29,14 +29,14 @@ msgstr "Действие не указано"
msgid "No matching action found"
msgstr "Соответствующее действие не найдено"
-#: InvenTree/fields.py:84
+#: InvenTree/fields.py:99
msgid "Enter date"
msgstr "Введите дату"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
-#: order/forms.py:75 part/forms.py:134
+#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
+#: order/forms.py:74 part/forms.py:118 templates/js/forms.js:486
msgid "Confirm"
msgstr "Подтвердить"
@@ -77,8 +77,8 @@ msgstr "Выбрать категорию"
msgid "Duplicate serial: {n}"
msgstr "Дублировать серийный номер: {n}"
-#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
-#: stock/views.py:1795
+#: InvenTree/helpers.py:403 order/models.py:311 order/models.py:421
+#: stock/views.py:1627
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
@@ -106,49 +106,53 @@ msgstr "Серийных номеров не найдено"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})"
-#: InvenTree/models.py:59 stock/models.py:1758
+#: InvenTree/models.py:61 stock/models.py:1778
msgid "Attachment"
msgstr "Вложения"
-#: InvenTree/models.py:60
+#: InvenTree/models.py:62
msgid "Select file to attach"
msgstr "Выберите файл для вложения"
-#: InvenTree/models.py:62 templates/attachment_table.html:16
+#: InvenTree/models.py:64 templates/js/attachment.js:52
msgid "Comment"
msgstr "Комментарий"
-#: InvenTree/models.py:62
+#: InvenTree/models.py:64
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2043
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1179
+#: templates/js/stock.js:1193
msgid "User"
msgstr "Пользователь"
-#: InvenTree/models.py:72
+#: InvenTree/models.py:74
msgid "upload date"
msgstr "дата загрузки"
-#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396
-#: label/models.py:102 part/models.py:671 part/models.py:2163
+#: InvenTree/models.py:102
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:414
+#: label/models.py:103 part/models.py:680 part/models.py:2192
#: part/templates/part/params.html:27 report/models.py:180
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/company.js:235 templates/js/part.js:118
-#: templates/js/part.js:642 templates/js/stock.js:972
+#: templates/js/company.js:359 templates/js/part.js:118
+#: templates/js/part.js:642 templates/js/stock.js:986
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:114 build/models.py:135
-#: build/templates/build/detail.html:21 company/models.py:339
-#: company/models.py:532 company/templates/company/detail.html:27
+#: InvenTree/models.py:125 build/models.py:139
+#: build/templates/build/detail.html:21 company/models.py:353
+#: company/models.py:554 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
-#: part/models.py:695 part/templates/part/detail.html:54
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:110
+#: order/models.py:154 order/templates/order/purchase_order_detail.html:174
+#: part/models.py:704 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
#: report/templates/report/inventree_build_order_base.html:118
@@ -156,39 +160,43 @@ msgstr "Название"
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
#: templates/js/build.js:834 templates/js/build.js:1102
-#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
+#: templates/js/company.js:125 templates/js/order.js:245
+#: templates/js/order.js:347 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
-#: templates/js/stock.js:557 templates/js/stock.js:984
-#: templates/js/stock.js:1029
+#: templates/js/stock.js:557 templates/js/stock.js:998
+#: templates/js/stock.js:1043
msgid "Description"
msgstr "Описание"
-#: InvenTree/models.py:115
+#: InvenTree/models.py:126
msgid "Description (optional)"
msgstr "Описание (необязательно)"
-#: InvenTree/models.py:123
+#: InvenTree/models.py:134
msgid "parent"
msgstr "родитель"
-#: InvenTree/settings.py:504
+#: InvenTree/serializers.py:52
+msgid "Must be a valid number"
+msgstr ""
+
+#: InvenTree/settings.py:505
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:508
+#: InvenTree/settings.py:509
msgid "Turkish"
msgstr "Турецкий"
@@ -446,50 +454,48 @@ msgid "Order target date"
msgstr "Срок выполнения заказа"
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
+#: build/templates/build/detail.html:121
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:881 templates/js/order.js:200
-#: templates/js/order.js:298
+#: templates/js/build.js:881 templates/js/order.js:262
+#: templates/js/order.js:365
msgid "Target Date"
msgstr "Целевая дата"
-#: build/forms.py:43 build/models.py:225
+#: build/forms.py:43 build/models.py:229
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1354
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:31 common/models.py:741
-#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
-#: order/forms.py:289 order/models.py:613 order/models.py:835
-#: order/templates/order/order_wizard/match_parts.html:30
+#: company/forms.py:124 company/templates/company/supplier_part_pricing.html:79
+#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:702
+#: order/models.py:941 order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/purchase_order_detail.html:179
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:162
-#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
-#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
-#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:203
-#: part/templates/part/part_pricing.html:16
-#: part/templates/part/sale_prices.html:85
+#: order/templates/order/purchase_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:80
+#: order/templates/order/sales_order_detail.html:87
+#: order/templates/order/sales_order_detail.html:172
+#: order/templates/order/sales_order_detail.html:244 part/forms.py:314
+#: part/forms.py:344 part/forms.py:360 part/forms.py:376 part/models.py:2330
+#: part/templates/part/part_pricing.html:16 part/templates/part/prices.html:377
+#: part/templates/part/prices.html:474
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308
+#: stock/forms.py:142 stock/forms.py:275
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
-#: templates/js/build.js:1112 templates/js/order.js:393
-#: templates/js/part.js:796 templates/js/stock.js:1164
-#: templates/js/stock.js:1383
+#: templates/js/build.js:1112 templates/js/model_renderers.js:43
+#: templates/js/order.js:460 templates/js/part.js:827 templates/js/part.js:949
+#: templates/js/part.js:1005 templates/js/stock.js:1178
+#: templates/js/stock.js:1397
msgid "Quantity"
msgstr "Количество"
@@ -501,7 +507,7 @@ msgstr "Количество элементов для сборки"
msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
-#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:114 stock/forms.py:85
msgid "Serial Numbers"
msgstr "Серийные номера"
@@ -530,12 +536,12 @@ msgid "Mark build as complete"
msgstr "Пометить сборку как завершенную"
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: stock/forms.py:347 stock/templates/stock/item_base.html:285
+#: stock/forms.py:314 stock/templates/stock/item_base.html:285
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:586 templates/js/order.js:378
-#: templates/js/stock.js:643 templates/js/stock.js:1056
+#: templates/js/build.js:586 templates/js/order.js:445
+#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr "Расположение"
@@ -544,13 +550,13 @@ msgid "Location of completed parts"
msgstr "Расположение укомплектованных частей"
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:465
+#: build/templates/build/detail.html:59 order/models.py:545
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:868
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:630 templates/js/stock.js:1133
-#: templates/js/stock.js:1399
+#: templates/js/order.js:249 templates/js/order.js:352
+#: templates/js/stock.js:630 templates/js/stock.js:1147
+#: templates/js/stock.js:1413
msgid "Status"
msgstr "Статус"
@@ -582,60 +588,60 @@ msgstr "Подтвердите отмену сборки"
msgid "Select quantity of stock to allocate"
msgstr "Выберите количество запасов для распределения"
-#: build/models.py:66 build/templates/build/build_base.html:9
+#: build/models.py:70 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:195
msgid "Build Order"
msgstr "Порядок сборки"
-#: build/models.py:67 build/templates/build/index.html:8
+#: build/models.py:71 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
-#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:191
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
+#: templates/InvenTree/settings/tabs.html:34 users/models.py:44
msgid "Build Orders"
msgstr "Порядок сборки"
-#: build/models.py:127
+#: build/models.py:131
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:128 order/models.py:98 order/models.py:615
-#: order/templates/order/purchase_order_detail.html:174
-#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
+#: build/models.py:132 order/models.py:242 order/models.py:529
+#: order/models.py:709 order/templates/order/purchase_order_detail.html:201
+#: order/templates/order/sales_order_detail.html:239 part/models.py:2339
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr ""
-#: build/models.py:138
+#: build/models.py:142
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:147 build/templates/build/build_base.html:163
+#: build/models.py:151 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr ""
-#: build/models.py:148
+#: build/models.py:152
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:153 build/templates/build/auto_allocate.html:16
+#: build/models.py:157 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:657 order/models.py:712
+#: build/templates/build/detail.html:26 company/models.py:689
+#: order/models.py:755 order/models.py:814
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:132
+#: order/templates/order/purchase_order_detail.html:159
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:214 part/models.py:321
-#: part/models.py:1975 part/models.py:1987 part/models.py:2002
-#: part/models.py:2020 part/models.py:2095 part/models.py:2191
-#: part/models.py:2277 part/templates/part/part_app_base.html:8
+#: order/templates/order/sales_order_detail.html:224 part/models.py:325
+#: part/models.py:1988 part/models.py:2004 part/models.py:2023
+#: part/models.py:2041 part/models.py:2120 part/models.py:2224
+#: part/models.py:2314 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
@@ -644,222 +650,222 @@ msgstr ""
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
#: templates/js/build.js:552 templates/js/build.js:839
-#: templates/js/build.js:1079 templates/js/company.js:140
-#: templates/js/company.js:339 templates/js/part.js:241
+#: templates/js/build.js:1079 templates/js/company.js:264
+#: templates/js/company.js:464 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
-#: templates/js/stock.js:1371
+#: templates/js/stock.js:1385
msgid "Part"
msgstr ""
-#: build/models.py:161
+#: build/models.py:165
msgid "Select part to build"
msgstr ""
-#: build/models.py:166
+#: build/models.py:170
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:170
+#: build/models.py:174
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:175
+#: build/models.py:179
msgid "Source Location"
msgstr ""
-#: build/models.py:179
+#: build/models.py:183
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:184
+#: build/models.py:188
msgid "Destination Location"
msgstr ""
-#: build/models.py:188
+#: build/models.py:192
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:192
+#: build/models.py:196
msgid "Build Quantity"
msgstr ""
-#: build/models.py:195
+#: build/models.py:199
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:199
+#: build/models.py:203
msgid "Completed items"
msgstr ""
-#: build/models.py:201
+#: build/models.py:205
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:205 part/templates/part/part_base.html:167
+#: build/models.py:209 part/templates/part/part_base.html:167
msgid "Build Status"
msgstr ""
-#: build/models.py:209
+#: build/models.py:213
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:462
+#: build/models.py:217 stock/models.py:470
msgid "Batch Code"
msgstr ""
-#: build/models.py:217
+#: build/models.py:221
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:104 part/models.py:867
-#: part/templates/part/detail.html:126 templates/js/order.js:293
+#: build/models.py:224 order/models.py:158 part/models.py:876
+#: part/templates/part/detail.html:126 templates/js/order.js:360
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:471
+#: build/models.py:228 order/models.py:551
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:217 templates/js/build.js:886
+#: build/models.py:232 order/models.py:284 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
-#: build/models.py:234
+#: build/models.py:238
msgid "completed by"
msgstr ""
-#: build/models.py:242
+#: build/models.py:246
msgid "Issued by"
msgstr ""
-#: build/models.py:243
+#: build/models.py:247
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:118
+#: build/models.py:255 build/templates/build/build_base.html:184
+#: build/templates/build/detail.html:105 order/models.py:172
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:871
+#: order/templates/order/sales_order_base.html:140 part/models.py:880
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:252
+#: build/models.py:256
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:257 build/templates/build/detail.html:91
+#: build/models.py:261 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
#: company/templates/company/manufacturer_part_detail.html:28
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:456 stock/templates/stock/item_base.html:345
+#: stock/models.py:464 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:458
+#: build/models.py:262 part/models.py:738 stock/models.py:466
msgid "Link to external URL"
msgstr ""
-#: build/models.py:262 build/templates/build/navbar.html:53
-#: company/models.py:132 company/models.py:539
+#: build/models.py:266 build/templates/build/navbar.html:53
+#: company/models.py:141 company/models.py:561
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:122
-#: order/models.py:617 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:176
+#: order/models.py:711 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/purchase_order_detail.html:243
-#: order/templates/order/sales_order_detail.html:309
+#: order/templates/order/purchase_order_detail.html:270
+#: order/templates/order/sales_order_detail.html:319
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:145
+#: order/templates/order/so_navbar.html:36 part/models.py:865
+#: part/templates/part/navbar.html:133
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
+#: stock/forms.py:140 stock/forms.py:284 stock/forms.py:316 stock/forms.py:344
+#: stock/models.py:536 stock/models.py:1678 stock/models.py:1784
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:713
msgid "Notes"
msgstr ""
-#: build/models.py:263
+#: build/models.py:267
msgid "Extra build notes"
msgstr ""
-#: build/models.py:740
+#: build/models.py:744
msgid "No build output specified"
msgstr ""
-#: build/models.py:743
+#: build/models.py:747
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:746
+#: build/models.py:750
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1152
+#: build/models.py:1160
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1177
+#: build/models.py:1185
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1181
+#: build/models.py:1189
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:809
+#: build/models.py:1196 order/models.py:915
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:812
+#: build/models.py:1200 order/models.py:918
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1204
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1264
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1316 stock/templates/stock/item_base.html:317
+#: build/models.py:1324 stock/templates/stock/item_base.html:317
#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1317
+#: build/models.py:1325
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1333 stock/templates/stock/item_base.html:8
+#: build/models.py:1341 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
#: templates/js/build.js:211 templates/js/build.js:929
-#: templates/js/order.js:366 templates/js/order.js:371
-#: templates/js/stock.js:1115
+#: templates/js/order.js:433 templates/js/order.js:438
+#: templates/js/stock.js:1129
msgid "Stock Item"
msgstr ""
-#: build/models.py:1334
+#: build/models.py:1342
msgid "Source stock item"
msgstr ""
-#: build/models.py:1347
+#: build/models.py:1355
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1355
+#: build/models.py:1363
msgid "Install into"
msgstr ""
-#: build/models.py:1356
+#: build/models.py:1364
msgid "Destination stock item"
msgstr ""
@@ -893,7 +899,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:724
#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -912,23 +918,52 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:160
+#: order/templates/order/sales_order_detail.html:85
+#: order/templates/order/sales_order_detail.html:170
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:450 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:570
+#: stock/models.py:458 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570 templates/js/model_renderers.js:41
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
-#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:124
+#: part/templates/part/navbar.html:127 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
+#: build/templates/build/attachments.html:51
+#: order/templates/order/so_attachments.html:79
+#: part/templates/part/attachments.html:81
+#: stock/templates/stock/item_attachments.html:81
+#: templates/attachment_table.html:6
+msgid "Add Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:69
+#: order/templates/order/so_attachments.html:52
+#: part/templates/part/attachments.html:35
+#: stock/templates/stock/item_attachments.html:49
+msgid "Edit Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:76
+#: order/templates/order/so_attachments.html:58
+#: part/templates/part/attachments.html:44
+#: stock/templates/stock/item_attachments.html:58
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/attachments.html:77
+#: order/templates/order/so_attachments.html:59
+#: part/templates/part/attachments.html:45
+#: stock/templates/stock/item_attachments.html:59
+msgid "Delete Attachment"
+msgstr ""
+
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
msgstr ""
@@ -989,8 +1024,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
#: order/templates/order/sales_order_base.html:88
-#: templates/js/table_filters.js:245 templates/js/table_filters.js:264
-#: templates/js/table_filters.js:281
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:269
+#: templates/js/table_filters.js:286
msgid "Overdue"
msgstr ""
@@ -1036,13 +1071,13 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:710
+#: build/templates/build/detail.html:84 order/models.py:812
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:279 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:279 templates/js/order.js:307
msgid "Sales Order"
msgstr ""
@@ -1183,10 +1218,10 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
-#: order/templates/order/purchase_order_detail.html:239
-#: order/templates/order/receive_parts.html:25 stock/forms.py:169
-#: stock/forms.py:375
+#: build/templates/build/detail.html:46 order/forms.py:88 order/models.py:771
+#: order/templates/order/purchase_order_detail.html:266
+#: order/templates/order/receive_parts.html:25 stock/forms.py:136
+#: stock/forms.py:342
msgid "Destination"
msgstr ""
@@ -1196,7 +1231,7 @@ msgstr ""
#: build/templates/build/detail.html:70
#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638
-#: templates/js/stock.js:1406 templates/js/table_filters.js:112
+#: templates/js/stock.js:1420 templates/js/table_filters.js:112
#: templates/js/table_filters.js:206
msgid "Batch"
msgstr ""
@@ -1251,7 +1286,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
-#: templates/js/stock.js:1044
+#: templates/js/stock.js:1058
msgid "Details"
msgstr ""
@@ -1287,7 +1322,6 @@ msgstr ""
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487
-#: stock/templates/stock/item_base.html:497
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1316,7 +1350,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/views.py:1821
+#: build/views.py:184 stock/views.py:1653
msgid "Serial numbers already exist"
msgstr ""
@@ -1332,7 +1366,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:281 build/views.py:371 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:346
msgid "Check the confirmation box"
msgstr ""
@@ -1429,31 +1463,6 @@ msgstr ""
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1070
-msgid "Add Build Order Attachment"
-msgstr ""
-
-#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
-#: stock/views.py:277
-msgid "Added attachment"
-msgstr ""
-
-#: build/views.py:1119 order/views.py:196 order/views.py:217
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/views.py:1129 order/views.py:200 order/views.py:221
-msgid "Attachment updated"
-msgstr ""
-
-#: build/views.py:1139 order/views.py:236 order/views.py:250
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
-msgid "Deleted attachment"
-msgstr ""
-
#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1470,7 +1479,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/attachment_table.html:15
+#: common/forms.py:34 templates/js/attachment.js:42
msgid "File"
msgstr ""
@@ -1503,7 +1512,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:72 company/models.py:94 company/models.py:95
+#: common/models.py:72 company/models.py:99 company/models.py:100
msgid "Company name"
msgstr ""
@@ -1607,9 +1616,9 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
-#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
-#: templates/js/table_filters.js:315
+#: common/models.py:160 part/models.py:2226 part/templates/part/detail.html:160
+#: report/models.py:186 stock/forms.py:226 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:320
msgid "Template"
msgstr ""
@@ -1617,8 +1626,8 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
+#: common/models.py:167 part/models.py:828 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:128 templates/js/table_filters.js:332
msgid "Assembly"
msgstr ""
@@ -1626,8 +1635,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:331
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:336
msgid "Component"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:845 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
@@ -1643,8 +1652,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:339
+#: common/models.py:188 part/models.py:850 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:344
msgid "Salable"
msgstr ""
@@ -1652,8 +1661,8 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
+#: common/models.py:195 part/models.py:840 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:348
msgid "Trackable"
msgstr ""
@@ -1661,7 +1670,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:860 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -1858,13 +1867,12 @@ msgstr ""
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:742 company/forms.py:190
+#: common/models.py:742 company/forms.py:125
msgid "Price break quantity"
msgstr ""
-#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
-#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
+#: templates/js/part.js:832
msgid "Price"
msgstr ""
@@ -1894,16 +1902,16 @@ msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:605
+#: order/templates/order/po_navbar.html:22 order/views.py:337
#: part/templates/part/bom_upload/upload_file.html:27
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:621
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:338 part/templates/part/bom_upload/select_fields.html:58
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr ""
@@ -1928,269 +1936,277 @@ msgstr ""
msgid "Previous Step"
msgstr ""
-#: company/forms.py:37 company/models.py:142
-#: company/templates/company/detail.html:42
-msgid "Currency"
-msgstr ""
-
-#: company/forms.py:38 company/models.py:144
-msgid "Default currency used for this company"
-msgstr ""
-
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:26 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:27 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:132 templates/js/part.js:787
+#: company/forms.py:67 templates/js/part.js:940
msgid "Single Price"
msgstr ""
-#: company/forms.py:133
+#: company/forms.py:68
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:141 company/models.py:321
+#: company/forms.py:76 company/models.py:335
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:147 company/models.py:328
+#: company/forms.py:82 company/models.py:342
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:149 company/models.py:327
+#: company/forms.py:84 company/models.py:341
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:162 part/bom.py:171
-#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408
+#: order/templates/order/purchase_order_detail.html:189 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:305 templates/js/company.js:533
msgid "MPN"
msgstr ""
-#: company/models.py:99
+#: company/models.py:104
msgid "Company description"
msgstr ""
-#: company/models.py:100
+#: company/models.py:105
msgid "Description of the company"
msgstr ""
-#: company/models.py:104 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:33 templates/js/company.js:60
+#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:129
msgid "Website"
msgstr ""
-#: company/models.py:104
+#: company/models.py:112
msgid "Company website URL"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:77
+#: company/models.py:116 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:108
+#: company/models.py:117
msgid "Company address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:120
msgid "Phone number"
msgstr ""
-#: company/models.py:112
+#: company/models.py:121
msgid "Contact phone number"
msgstr ""
-#: company/models.py:115 company/templates/company/company_base.html:91
+#: company/models.py:124 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:115
+#: company/models.py:124
msgid "Contact email address"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:98
+#: company/models.py:127 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:119
+#: company/models.py:128
msgid "Point of contact"
msgstr ""
-#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:102 part/models.py:728
+#: company/models.py:130 company/models.py:347 company/models.py:548
+#: order/models.py:156 part/models.py:737
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/company.js:188 templates/js/company.js:419
+#: templates/js/company.js:312 templates/js/company.js:544
#: templates/js/part.js:498
msgid "Link"
msgstr ""
-#: company/models.py:121
+#: company/models.py:130
msgid "Link to external company information"
msgstr ""
-#: company/models.py:129 part/models.py:738
+#: company/models.py:138 part/models.py:747
msgid "Image"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "is customer"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "is supplier"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "is manufacturer"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:403
+#: company/models.py:151 company/serializers.py:259
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:154
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:319 company/models.py:519 stock/models.py:411
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1603
+#: company/models.py:323 company/models.py:523 order/views.py:1127
msgid "Select part"
msgstr ""
-#: company/models.py:320 company/templates/company/detail.html:57
+#: company/models.py:334 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
#: part/bom.py:241 stock/templates/stock/item_base.html:352
-#: templates/js/company.js:44 templates/js/company.js:165
-#: templates/js/company.js:390
+#: templates/js/company.js:113 templates/js/company.js:289
+#: templates/js/company.js:515
msgid "Manufacturer"
msgstr ""
-#: company/models.py:334
+#: company/models.py:348
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:340
+#: company/models.py:354
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:390 company/models.py:520
+#: company/models.py:408 company/models.py:542
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:362
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:397
+#: company/models.py:415
msgid "Parameter name"
msgstr ""
-#: company/models.py:403 part/templates/part/params.html:28
+#: company/models.py:421 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
-#: templates/js/company.js:241 templates/js/stock.js:137
+#: stock/models.py:1771 templates/InvenTree/settings/header.html:8
+#: templates/js/company.js:365 templates/js/stock.js:137
msgid "Value"
msgstr ""
-#: company/models.py:404
+#: company/models.py:422
msgid "Parameter value"
msgstr ""
-#: company/models.py:410 part/models.py:813 part/models.py:2165
+#: company/models.py:428 part/models.py:822 part/models.py:2194
#: part/templates/part/detail.html:106 part/templates/part/params.html:29
-#: templates/js/company.js:247
+#: templates/js/company.js:371
msgid "Units"
msgstr ""
-#: company/models.py:411
+#: company/models.py:429
msgid "Parameter units"
msgstr ""
-#: company/models.py:507 company/templates/company/detail.html:62
+#: company/models.py:529 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:256
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
-#: templates/js/company.js:48 templates/js/company.js:364
-#: templates/js/order.js:170
+#: templates/js/company.js:117 templates/js/company.js:489
+#: templates/js/order.js:232
msgid "Supplier"
msgstr ""
-#: company/models.py:508
+#: company/models.py:530
msgid "Select supplier"
msgstr ""
-#: company/models.py:513 company/templates/company/supplier_part_base.html:88
+#: company/models.py:535 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:153 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:180 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:514
+#: company/models.py:536
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:521
+#: company/models.py:543
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:527
+#: company/models.py:549
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:533
+#: company/models.py:555
msgid "Supplier part description"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part_base.html:116
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305
+#: company/models.py:560 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2342
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "base cost"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:427 stock/templates/stock/item_base.html:310
-#: templates/js/stock.js:695
+#: company/models.py:566 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:435 stock/templates/stock/item_base.html:310
+#: templates/js/stock.js:709
msgid "Packaging"
msgstr ""
-#: company/models.py:544
+#: company/models.py:566
msgid "Part packaging"
msgstr ""
-#: company/models.py:546 part/models.py:1608
+#: company/models.py:568 part/models.py:1617
msgid "multiple"
msgstr ""
-#: company/models.py:546
+#: company/models.py:568
msgid "Order multiple"
msgstr ""
+#: company/serializers.py:68
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:69
+msgid "Currency Code"
+msgstr ""
+
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
#: company/templates/company/navbar.html:65 templates/js/build.js:563
@@ -2199,7 +2215,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:102
msgid "Company"
msgstr ""
@@ -2213,7 +2229,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:313
+#: company/templates/company/company_base.html:46 templates/js/order.js:61
msgid "Create Purchase Order"
msgstr ""
@@ -2221,7 +2237,8 @@ msgstr ""
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56 company/views.py:326
+#: company/templates/company/company_base.html:56
+#: company/templates/company/company_base.html:126
msgid "Delete Company"
msgstr ""
@@ -2235,15 +2252,9 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/delete.html:7
-#, python-format
-msgid "Are you sure you want to delete company '%(name)s'?"
-msgstr ""
-
-#: company/templates/company/delete.html:12
-#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be deleted."
+#: company/templates/company/company_base.html:166
+#: part/templates/part/part_base.html:307
+msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:21
@@ -2258,11 +2269,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:460
-#: order/templates/order/sales_order_base.html:94 stock/models.py:445
-#: stock/models.py:446 stock/templates/stock/item_base.html:262
-#: templates/js/company.js:40 templates/js/order.js:267
-#: templates/js/stock.js:1097
+#: company/templates/company/detail.html:67 order/models.py:540
+#: order/templates/order/sales_order_base.html:94 stock/models.py:453
+#: stock/models.py:454 stock/templates/stock/item_base.html:262
+#: templates/js/company.js:109 templates/js/order.js:329
+#: templates/js/stock.js:1111
msgid "Customer"
msgstr ""
@@ -2283,6 +2294,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
+#: company/templates/company/manufacturer_part_suppliers.html:46
#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
@@ -2305,26 +2317,25 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:68
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:127
-#: templates/js/stock.js:1312
+#: templates/js/stock.js:1326
msgid "New Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:69
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:72
-#: company/views.py:71 part/templates/part/manufacturer.html:52
-#: part/templates/part/supplier.html:56
+#: company/templates/company/detail_manufacturer_part.html:74
+#: company/views.py:66 part/templates/part/manufacturer.html:52
+#: part/templates/part/supplier.html:55
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:73
-#: company/views.py:284
+#: company/templates/company/detail_manufacturer_part.html:75
msgid "Create new Manufacturer"
msgstr ""
@@ -2335,7 +2346,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:123 part/templates/part/category.html:137
-#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
+#: part/templates/part/stock.html:55 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2347,26 +2358,24 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:44
-#: order/templates/order/purchase_order_detail.html:50
+#: part/templates/part/part_base.html:429
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1318
+#: part/templates/part/part_base.html:428 part/templates/part/supplier.html:17
+#: templates/js/stock.js:1332
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
-#: company/templates/company/manufacturer_part_suppliers.html:82
-#: company/views.py:64 order/templates/order/purchase_orders.html:185
-#: part/templates/part/supplier.html:50
+#: company/templates/company/manufacturer_part_suppliers.html:96
+#: company/views.py:60 part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
-#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:186
+#: company/templates/company/detail_supplier_part.html:73
msgid "Create new Supplier"
msgstr ""
@@ -2401,20 +2410,19 @@ msgstr ""
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:6
-msgid "Are you sure you want to delete the following Manufacturer Parts?"
+#: company/templates/company/manufacturer_part_base.html:125
+msgid "Edit Manufacturer Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:36
-#, python-format
-msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
+#: company/templates/company/manufacturer_part_base.html:134
+msgid "Delete Manufacturer Part"
msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:87
-#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
-#: templates/navbar.html:35
+#: company/views.py:59 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 part/templates/part/prices.html:153
+#: templates/InvenTree/search.html:316 templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2425,7 +2433,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:39 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:53
#: 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:128 templates/InvenTree/search.html:196
@@ -2451,9 +2459,11 @@ msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: company/templates/company/manufacturer_part_suppliers.html:142
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:191
+#: stock/views.py:855 templates/js/company.js:203 users/models.py:192
msgid "Delete"
msgstr ""
@@ -2471,11 +2481,27 @@ msgstr ""
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part_suppliers.html:83
+#: company/templates/company/manufacturer_part_suppliers.html:48
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:80
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:97
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
msgstr ""
+#: company/templates/company/manufacturer_part_suppliers.html:127
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:139
+msgid "Delete Parameters"
+msgstr ""
+
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
msgid "Manufactured Parts"
@@ -2492,8 +2518,8 @@ msgstr ""
#: stock/templates/stock/location.html:136
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
-#: templates/InvenTree/search.html:198 templates/js/stock.js:996
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2503,11 +2529,11 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: part/templates/part/navbar.html:101 part/templates/part/navbar.html:104
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:236
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
-#: users/models.py:45
+#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2516,10 +2542,10 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:213
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
-#: users/models.py:44
+#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2548,8 +2574,9 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
-#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:420
+#: stock/templates/stock/item_base.html:374 templates/js/company.js:505
+#: templates/js/stock.js:690
msgid "Supplier Part"
msgstr ""
@@ -2594,459 +2621,401 @@ msgid "Order Part"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:11
+#: part/templates/part/navbar.html:74
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2918
+#: company/templates/company/supplier_part_pricing.html:19
+#: company/templates/company/supplier_part_pricing.html:118
+#: part/templates/part/prices.html:264 part/views.py:2788
msgid "Add Price Break"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:38
-#: part/templates/part/sale_prices.html:46
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:89
-#: part/templates/part/sale_prices.html:97
+#: company/templates/company/supplier_part_pricing.html:52 part/views.py:2850
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:66 part/views.py:2836
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:91
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:90
-#: part/templates/part/sale_prices.html:98
+#: company/templates/company/supplier_part_pricing.html:92
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:81
-#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
-#: templates/navbar.html:36
+#: company/views.py:65 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 part/templates/part/prices.html:157
+#: templates/InvenTree/search.html:306 templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
-#: company/views.py:77 templates/InvenTree/search.html:336
+#: company/views.py:71 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:187
+#: company/views.py:72
msgid "New Customer"
msgstr ""
-#: company/views.py:86
+#: company/views.py:79
msgid "Companies"
msgstr ""
-#: company/views.py:87
+#: company/views.py:80
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:1115
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:1147
+#: company/views.py:190 part/views.py:1039
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:1154
+#: company/views.py:197 part/views.py:1046
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:1163
+#: company/views.py:206 part/views.py:1055
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: company/views.py:243
-msgid "Update Company Image"
-msgstr ""
-
-#: company/views.py:249
-msgid "Updated company image"
-msgstr ""
-
-#: company/views.py:259
-msgid "Edit Company"
-msgstr ""
-
-#: company/views.py:264
-msgid "Edited company information"
-msgstr ""
-
-#: company/views.py:287 order/templates/order/sales_orders.html:188
-msgid "Create new Customer"
-msgstr ""
-
-#: company/views.py:289
-msgid "Create new Company"
-msgstr ""
-
-#: company/views.py:316
-msgid "Created new company"
-msgstr ""
-
-#: company/views.py:332
-msgid "Company was deleted"
-msgstr ""
-
-#: company/views.py:357
-msgid "Edit Manufacturer Part"
-msgstr ""
-
-#: company/views.py:366
+#: company/views.py:251
msgid "Create New Manufacturer Part"
msgstr ""
-#: company/views.py:440
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: company/views.py:514
-msgid "Add Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:548
-msgid "Edit Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:588
+#: company/views.py:334
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:639 templates/js/stock.js:1319
+#: company/views.py:385 templates/js/stock.js:1333
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:783
+#: company/views.py:529
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2922
-msgid "Added new price break"
-msgstr ""
-
-#: company/views.py:916 part/views.py:2966
-msgid "Edit Price Break"
-msgstr ""
-
-#: company/views.py:931 part/views.py:2980
-msgid "Delete Price Break"
-msgstr ""
-
#: label/api.py:56 report/api.py:201
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:103
+#: label/models.py:104
msgid "Label name"
msgstr ""
-#: label/models.py:110
+#: label/models.py:111
msgid "Label description"
msgstr ""
-#: label/models.py:117 stock/forms.py:202
+#: label/models.py:118 stock/forms.py:169
msgid "Label"
msgstr ""
-#: label/models.py:118
+#: label/models.py:119
msgid "Label template file"
msgstr ""
-#: label/models.py:124 report/models.py:297
+#: label/models.py:125 report/models.py:297
msgid "Enabled"
msgstr ""
-#: label/models.py:125
+#: label/models.py:126
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Width [mm]"
msgstr ""
-#: label/models.py:131
+#: label/models.py:132
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Height [mm]"
msgstr ""
-#: label/models.py:138
+#: label/models.py:139
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:144 report/models.py:290
+#: label/models.py:145 report/models.py:290
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:145
+#: label/models.py:146
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:244 label/models.py:297
+#: label/models.py:249 label/models.py:306
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:245 label/models.py:298 report/models.py:317
+#: label/models.py:250 label/models.py:307 report/models.py:317
#: report/models.py:440 report/models.py:474
msgid "Filters"
msgstr ""
-#: order/forms.py:31 order/templates/order/order_base.html:47
+#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:42 order/templates/order/order_base.html:54
+#: order/forms.py:41 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
+#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:75 order/templates/order/sales_order_base.html:58
+#: order/forms.py:74 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:90
+#: order/forms.py:89
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:112
-msgid "Purchase Order reference"
-msgstr ""
-
-#: order/forms.py:119
-msgid "Target date for order delivery. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:147
-msgid "Enter sales order number"
-msgstr ""
-
-#: order/forms.py:154 order/models.py:472
-msgid "Target date for order completion. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:246
+#: order/forms.py:116
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:252
+#: order/forms.py:122
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:98
-msgid "Order reference"
-msgstr ""
-
-#: order/models.py:100
+#: order/models.py:154
msgid "Order description"
msgstr ""
-#: order/models.py:102
+#: order/models.py:156
msgid "Link to external page"
msgstr ""
-#: order/models.py:110 part/templates/part/detail.html:132
+#: order/models.py:164 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:117
+#: order/models.py:171
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:176
msgid "Order notes"
msgstr ""
-#: order/models.py:181 order/models.py:465
+#: order/models.py:243 order/models.py:530
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:248 order/models.py:545
msgid "Purchase order status"
msgstr ""
-#: order/models.py:190
+#: order/models.py:257
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:193 order/templates/order/order_base.html:98
-#: templates/js/order.js:179
+#: order/models.py:260 order/templates/order/order_base.html:98
+#: templates/js/order.js:241
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:193
+#: order/models.py:260
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:200
+#: order/models.py:267
msgid "received by"
msgstr ""
-#: order/models.py:205
+#: order/models.py:272
msgid "Issue Date"
msgstr ""
-#: order/models.py:206
+#: order/models.py:273
msgid "Date order was issued"
msgstr ""
-#: order/models.py:211
+#: order/models.py:278
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:212
+#: order/models.py:279
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:218
+#: order/models.py:285
msgid "Date order was completed"
msgstr ""
-#: order/models.py:242 part/views.py:1853 stock/models.py:300
-#: stock/models.py:1015
+#: order/models.py:309 part/views.py:1730 stock/models.py:308
+#: stock/models.py:1023
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:247
+#: order/models.py:314
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:345
+#: order/models.py:412
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:349
+#: order/models.py:416
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:351
+#: order/models.py:418
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:461
+#: order/models.py:541
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer Reference "
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:475 templates/js/order.js:303
+#: order/models.py:552
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:555 templates/js/order.js:370
msgid "Shipment Date"
msgstr ""
-#: order/models.py:482
+#: order/models.py:562
msgid "shipped by"
msgstr ""
-#: order/models.py:526
+#: order/models.py:606
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:613
+#: order/models.py:703
msgid "Item quantity"
msgstr ""
-#: order/models.py:615
+#: order/models.py:709
msgid "Line item reference"
msgstr ""
-#: order/models.py:617
+#: order/models.py:711
msgid "Line item notes"
msgstr ""
-#: order/models.py:643 order/models.py:710 templates/js/order.js:353
+#: order/models.py:741 order/models.py:812 templates/js/order.js:420
msgid "Order"
msgstr ""
-#: order/models.py:644 order/templates/order/order_base.html:9
+#: order/models.py:742 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
-#: templates/js/stock.js:669 templates/js/stock.js:1078
+#: stock/templates/stock/item_base.html:324 templates/js/order.js:210
+#: templates/js/stock.js:669 templates/js/stock.js:1092
msgid "Purchase Order"
msgstr ""
-#: order/models.py:658
+#: order/models.py:756
msgid "Supplier part"
msgstr ""
-#: order/models.py:661 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:219
+#: order/models.py:759 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:246
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:661
+#: order/models.py:759
msgid "Number of items received"
msgstr ""
-#: order/models.py:667 stock/models.py:537
-#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
+#: order/models.py:765 part/templates/part/prices.html:166 stock/models.py:545
+#: stock/templates/stock/item_base.html:331 templates/js/stock.js:704
msgid "Purchase Price"
msgstr ""
-#: order/models.py:668
+#: order/models.py:766
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:676
+#: order/models.py:774
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:718 part/templates/part/navbar.html:110
-#: part/templates/part/order_prices.html:108
-#: part/templates/part/part_pricing.html:97
+#: order/models.py:820 part/templates/part/part_pricing.html:97
+#: part/templates/part/prices.html:103 part/templates/part/prices.html:278
msgid "Sale Price"
msgstr ""
-#: order/models.py:719
+#: order/models.py:821
msgid "Unit sale price"
msgstr ""
-#: order/models.py:794 order/models.py:796
+#: order/models.py:900 order/models.py:902
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:800
+#: order/models.py:906
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:802
+#: order/models.py:908
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:805
+#: order/models.py:911
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:815
+#: order/models.py:921
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:820
+#: order/models.py:926
msgid "Line"
msgstr ""
-#: order/models.py:831
+#: order/models.py:937
msgid "Item"
msgstr ""
-#: order/models.py:832
+#: order/models.py:938
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:835
+#: order/models.py:941
msgid "Enter stock allocation quantity"
msgstr ""
+#: order/serializers.py:139
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Sale price currency"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
#: templates/attachment_delete.html:5
@@ -3091,16 +3060,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:180
-#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/order_base.html:188
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:199
+#: order/templates/order/purchase_order_detail.html:127
#: part/templates/part/category.html:217 part/templates/part/category.html:259
-#: stock/templates/stock/location.html:191 templates/js/stock.js:736
-#: templates/js/stock.js:1324
+#: part/templates/part/part_base.html:415
+#: stock/templates/stock/location.html:191 templates/js/stock.js:750
+#: templates/js/stock.js:1338
msgid "New Location"
msgstr ""
-#: order/templates/order/order_base.html:181
-#: order/templates/order/purchase_order_detail.html:101
+#: order/templates/order/order_base.html:200
+#: order/templates/order/purchase_order_detail.html:128
+#: part/templates/part/part_base.html:416
#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3253,7 +3228,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.js:205 templates/js/order.js:308
+#: templates/js/order.js:267 templates/js/order.js:375
msgid "Items"
msgstr ""
@@ -3277,7 +3252,6 @@ msgid "Purchase Order Attachments"
msgstr ""
#: order/templates/order/po_lineitem_delete.html:5
-#: order/templates/order/so_lineitem_delete.html:5
msgid "Are you sure you wish to delete this line item?"
msgstr ""
@@ -3295,40 +3269,52 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
-#: order/views.py:1410
+#: order/templates/order/purchase_order_detail.html:64
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:56
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:114
+#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/sales_order_detail.html:398
+msgid "Edit Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:110
+#: order/templates/order/sales_order_detail.html:408
+msgid "Delete Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:141
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/purchase_order_detail.html:169
+#: order/templates/order/sales_order_detail.html:233
msgid "Total"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:191
-#: order/templates/order/sales_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:218
+#: order/templates/order/sales_order_detail.html:256 templates/js/part.js:807
+#: templates/js/part.js:996
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:198
-#: order/templates/order/sales_order_detail.html:253
+#: order/templates/order/purchase_order_detail.html:225
+#: order/templates/order/sales_order_detail.html:263
msgid "Total price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:255
-#: order/templates/order/sales_order_detail.html:359
+#: order/templates/order/purchase_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:369
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:256
+#: order/templates/order/purchase_order_detail.html:283
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:261
+#: order/templates/order/purchase_order_detail.html:288
msgid "Receive line item"
msgstr ""
@@ -3343,7 +3329,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
-#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/models.py:326 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:157
#: part/templates/part/category_navbar.html:25
#: part/templates/part/category_navbar.html:32
@@ -3351,7 +3337,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:40
+#: users/models.py:41
msgid "Parts"
msgstr ""
@@ -3393,10 +3379,14 @@ msgstr ""
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100 templates/js/order.js:275
+#: order/templates/order/sales_order_base.html:100 templates/js/order.js:342
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_base.html:177
+msgid "Edit Sales Order"
+msgstr ""
+
#: order/templates/order/sales_order_cancel.html:8
#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
@@ -3412,69 +3402,69 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: order/templates/order/sales_order_detail.html:105 templates/js/bom.js:358
#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: order/templates/order/sales_order_detail.html:112 templates/js/build.js:611
#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: order/templates/order/sales_order_detail.html:113 templates/js/build.js:613
#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:176
+#: order/templates/order/sales_order_detail.html:186
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:216
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: order/templates/order/sales_order_detail.html:284 templates/js/build.js:676
#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:276
+#: order/templates/order/sales_order_detail.html:286
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:313
+#: order/templates/order/sales_order_detail.html:323
msgid "PO"
msgstr ""
-#: order/templates/order/sales_order_detail.html:343
+#: order/templates/order/sales_order_detail.html:353
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
+#: order/templates/order/sales_order_detail.html:356 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:349
+#: order/templates/order/sales_order_detail.html:359
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: order/templates/order/sales_order_detail.html:363 templates/js/build.js:732
#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:356
-#: order/templates/order/sales_order_detail.html:465
+#: order/templates/order/sales_order_detail.html:366
+#: order/templates/order/sales_order_detail.html:485
msgid "Calculate price"
msgstr ""
-#: order/templates/order/sales_order_detail.html:360
+#: order/templates/order/sales_order_detail.html:370
msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:471
+#: order/templates/order/sales_order_detail.html:491
msgid "Update Unit Price"
msgstr ""
@@ -3515,194 +3505,154 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:106
-msgid "Add Purchase Order Attachment"
-msgstr ""
-
-#: order/views.py:156
-msgid "Add Sales Order Attachment"
-msgstr ""
-
-#: order/views.py:348
-msgid "Create Sales Order"
-msgstr ""
-
-#: order/views.py:383
-msgid "Edit Purchase Order"
-msgstr ""
-
-#: order/views.py:403
-msgid "Edit Sales Order"
-msgstr ""
-
-#: order/views.py:419
+#: order/views.py:151
msgid "Cancel Order"
msgstr ""
-#: order/views.py:428 order/views.py:454
+#: order/views.py:160 order/views.py:186
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:431 order/views.py:457
+#: order/views.py:163 order/views.py:189
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:445
+#: order/views.py:177
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:471
+#: order/views.py:203
msgid "Issue Order"
msgstr ""
-#: order/views.py:480
+#: order/views.py:212
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:490
+#: order/views.py:222
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:501
+#: order/views.py:233
msgid "Complete Order"
msgstr ""
-#: order/views.py:517
+#: order/views.py:249
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:528
+#: order/views.py:260
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:538
+#: order/views.py:270
msgid "Ship Order"
msgstr ""
-#: order/views.py:554
+#: order/views.py:286
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:560
+#: order/views.py:292
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:339
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:804
+#: order/views.py:536
msgid "Receive Parts"
msgstr ""
-#: order/views.py:874
+#: order/views.py:606
msgid "Items received"
msgstr ""
-#: order/views.py:888
+#: order/views.py:620
msgid "No destination set"
msgstr ""
-#: order/views.py:933
+#: order/views.py:665
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:939
+#: order/views.py:671
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:945
+#: order/views.py:677
msgid "No lines specified"
msgstr ""
-#: order/views.py:1018
+#: order/views.py:750
msgid "Update prices"
msgstr ""
-#: order/views.py:1276
+#: order/views.py:1008
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1336
-msgid "Supplier part must be specified"
-msgstr ""
-
-#: order/views.py:1342
-msgid "Supplier must match for Part and Order"
-msgstr ""
-
-#: order/views.py:1473 order/views.py:1491
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/views.py:1507 order/views.py:1519
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/views.py:1512 order/views.py:1524
-msgid "Deleted line item"
-msgstr ""
-
-#: order/views.py:1537
+#: order/views.py:1061
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1582
+#: order/views.py:1106
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1598
+#: order/views.py:1122
msgid "Select line item"
msgstr ""
-#: order/views.py:1629
+#: order/views.py:1153
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1639
+#: order/views.py:1163
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1647
+#: order/views.py:1171
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1701
+#: order/views.py:1225
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1775
+#: order/views.py:1299
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1790
+#: order/views.py:1314
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1386
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1868
+#: order/views.py:1392
msgid "Price not found"
msgstr ""
-#: order/views.py:1871
+#: order/views.py:1395
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1876
+#: order/views.py:1400
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:138 part/models.py:72 part/models.py:747
+#: part/bom.py:138 part/models.py:72 part/models.py:756
#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3724,143 +3674,143 @@ msgstr ""
msgid "Error reading BOM file (incorrect row size)"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "File Format"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "Select output file format"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Cascading"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Download cascading / multi-level BOM"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Levels"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Select maximum number of BOM levels to export (0 = all levels)"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include Parameter Data"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include part parameters data in exported BOM"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include Stock Data"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include part stock data in exported BOM"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include Manufacturer Data"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include part manufacturer data in exported BOM"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include Supplier Data"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2191
+#: part/forms.py:106 part/models.py:2224
msgid "Parent Part"
msgstr ""
-#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:107 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr ""
-#: part/forms.py:129
+#: part/forms.py:113
msgid "Clear existing BOM items"
msgstr ""
-#: part/forms.py:135
+#: part/forms.py:119
msgid "Confirm BOM duplication"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "validate"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "BOM file"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "Select BOM file to upload"
msgstr ""
-#: part/forms.py:184
+#: part/forms.py:168
msgid "Related Part"
msgstr ""
-#: part/forms.py:203
+#: part/forms.py:175
msgid "Select part category"
msgstr ""
-#: part/forms.py:220
+#: part/forms.py:192
msgid "Duplicate all BOM data for this part"
msgstr ""
-#: part/forms.py:221
+#: part/forms.py:193
msgid "Copy BOM"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:198
msgid "Duplicate all parameter data for this part"
msgstr ""
-#: part/forms.py:227
+#: part/forms.py:199
msgid "Copy Parameters"
msgstr ""
-#: part/forms.py:232
+#: part/forms.py:204
msgid "Confirm part creation"
msgstr ""
-#: part/forms.py:237
+#: part/forms.py:209
msgid "Include category parameter templates"
msgstr ""
-#: part/forms.py:242
+#: part/forms.py:214
msgid "Include parent categories parameter templates"
msgstr ""
-#: part/forms.py:322
+#: part/forms.py:294
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:298
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2286
+#: part/forms.py:316 part/models.py:2323
msgid "Sub part"
msgstr ""
-#: part/forms.py:373
+#: part/forms.py:345
msgid "Input quantity for price calculation"
msgstr ""
@@ -3876,362 +3826,362 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2237
+#: part/models.py:86 part/models.py:2270
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:32
+#: part/models.py:87 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:39
+#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:448 part/models.py:460
+#: part/models.py:457 part/models.py:469
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:557
+#: part/models.py:566
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:561
+#: part/models.py:570
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:566
+#: part/models.py:575
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:645
+#: part/models.py:654
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:670 part/templates/part/detail.html:22
+#: part/models.py:679 part/templates/part/detail.html:22
msgid "Part name"
msgstr ""
-#: part/models.py:677
+#: part/models.py:686
msgid "Is Template"
msgstr ""
-#: part/models.py:678
+#: part/models.py:687
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:689
+#: part/models.py:698
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:690 part/templates/part/detail.html:60
+#: part/models.py:699 part/templates/part/detail.html:60
msgid "Variant Of"
msgstr ""
-#: part/models.py:696
+#: part/models.py:705
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:82
+#: part/models.py:710 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
-#: part/models.py:702
+#: part/models.py:711
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73
+#: part/models.py:718 part/models.py:2269 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:452
msgid "Category"
msgstr ""
-#: part/models.py:710
+#: part/models.py:719
msgid "Part category"
msgstr ""
-#: part/models.py:715 part/templates/part/detail.html:28
+#: part/models.py:724 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:87 templates/js/part.js:169
#: templates/js/part.js:296
msgid "IPN"
msgstr ""
-#: part/models.py:716
+#: part/models.py:725
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:722
+#: part/models.py:731
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199
+#: part/models.py:732 part/templates/part/detail.html:35 report/models.py:199
#: templates/js/part.js:173
msgid "Revision"
msgstr ""
-#: part/models.py:745
+#: part/models.py:754
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:792 part/templates/part/detail.html:97
+#: part/models.py:801 part/templates/part/detail.html:97
msgid "Default Supplier"
msgstr ""
-#: part/models.py:793
+#: part/models.py:802
msgid "Default supplier part"
msgstr ""
-#: part/models.py:800
+#: part/models.py:809
msgid "Default Expiry"
msgstr ""
-#: part/models.py:801
+#: part/models.py:810
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:806 part/templates/part/detail.html:113
+#: part/models.py:815 part/templates/part/detail.html:113
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:807
+#: part/models.py:816
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:814
+#: part/models.py:823
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:820
+#: part/models.py:829
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:835
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:832
+#: part/models.py:841
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:837
+#: part/models.py:846
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:842
+#: part/models.py:851
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:846 part/templates/part/detail.html:227
+#: part/models.py:855 part/templates/part/detail.html:227
#: templates/js/table_filters.js:21 templates/js/table_filters.js:65
-#: templates/js/table_filters.js:241 templates/js/table_filters.js:310
+#: templates/js/table_filters.js:246 templates/js/table_filters.js:315
msgid "Active"
msgstr ""
-#: part/models.py:847
+#: part/models.py:856
msgid "Is this part active?"
msgstr ""
-#: part/models.py:852
+#: part/models.py:861
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:857
+#: part/models.py:866
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "BOM checksum"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:863
+#: part/models.py:872
msgid "BOM checked by"
msgstr ""
-#: part/models.py:865
+#: part/models.py:874
msgid "BOM checked date"
msgstr ""
-#: part/models.py:869
+#: part/models.py:878
msgid "Creation User"
msgstr ""
-#: part/models.py:1608
+#: part/models.py:1617
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2063
+#: part/models.py:2088
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2080
+#: part/models.py:2105
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117
+#: part/models.py:2125 templates/js/part.js:717 templates/js/stock.js:117
msgid "Test Name"
msgstr ""
-#: part/models.py:2101
+#: part/models.py:2126
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2106
+#: part/models.py:2131
msgid "Test Description"
msgstr ""
-#: part/models.py:2107
+#: part/models.py:2132
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2112 templates/js/part.js:726
-#: templates/js/table_filters.js:227
+#: part/models.py:2137 templates/js/part.js:726
+#: templates/js/table_filters.js:232
msgid "Required"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2138
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2118 templates/js/part.js:734
+#: part/models.py:2143 templates/js/part.js:734
msgid "Requires Value"
msgstr ""
-#: part/models.py:2119
+#: part/models.py:2144
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2124 templates/js/part.js:741
+#: part/models.py:2149 templates/js/part.js:741
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2150
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2187
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2192
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2165
+#: part/models.py:2194
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2193 part/models.py:2242 part/models.py:2243
+#: part/models.py:2226 part/models.py:2275 part/models.py:2276
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Data"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2247 templates/InvenTree/settings/category.html:67
+#: part/models.py:2280 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2281
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2278
+#: part/models.py:2315
msgid "Select parent part"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2324
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2293
+#: part/models.py:2330
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2332 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2295
+#: part/models.py:2332
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2298
+#: part/models.py:2335
msgid "Overage"
msgstr ""
-#: part/models.py:2299
+#: part/models.py:2336
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2302
+#: part/models.py:2339
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2305
+#: part/models.py:2342
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "Checksum"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2348 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2312
+#: part/models.py:2349
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:287
+#: part/models.py:2354 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2318
+#: part/models.py:2355
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1859 part/views.py:1911
-#: stock/models.py:290
+#: part/models.py:2431 part/views.py:1736 part/views.py:1788
+#: stock/models.py:298
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2403 part/models.py:2405
+#: part/models.py:2440 part/models.py:2442
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2445
msgid "BOM Item"
msgstr ""
-#: part/models.py:2527
+#: part/models.py:2564
msgid "Part 1"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Part 2"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2563
+#: part/models.py:2600
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4247,14 +4197,6 @@ msgstr ""
msgid "Part Attachments"
msgstr ""
-#: part/templates/part/bom-delete.html:6
-msgid "Are you sure you want to delete this BOM item?"
-msgstr ""
-
-#: part/templates/part/bom-delete.html:8
-msgid "Deleting this entry will remove the BOM row from the following part"
-msgstr ""
-
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
@@ -4303,7 +4245,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:2154
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr ""
@@ -4319,8 +4261,8 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:590
-#: templates/js/stock.js:1313
+#: part/templates/part/bom.html:160 part/views.py:450
+#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr ""
@@ -4401,7 +4343,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:2564
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr ""
@@ -4461,11 +4403,12 @@ msgid "View grid display"
msgstr ""
#: part/templates/part/category.html:218
-#: stock/templates/stock/location.html:192 templates/js/stock.js:737
+#: stock/templates/stock/location.html:192 templates/js/stock.js:751
msgid "Create new location"
msgstr ""
#: part/templates/part/category.html:223 part/templates/part/category.html:253
+#: part/templates/part/part_base.html:378
msgid "New Category"
msgstr ""
@@ -4477,10 +4420,18 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:260 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1223
msgid "Create new Stock Location"
msgstr ""
+#: part/templates/part/category.html:279
+msgid "Select parent category"
+msgstr ""
+
+#: part/templates/part/category.html:286 part/views.py:2389
+msgid "Edit Part Category"
+msgstr ""
+
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4526,7 +4477,7 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:466
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr ""
@@ -4639,36 +4590,6 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:101
-msgid "Internal Price Information"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:19 part/views.py:2989
-msgid "Add Internal Price Break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:28 templates/403.html:5
-#: templates/403.html:11
-msgid "Permission Denied"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:31 templates/403.html:14
-msgid "You do not have permission to view this page."
-msgstr ""
-
-#: part/templates/part/internal_prices.html:59
-msgid "No internal price break information found"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:110
-msgid "Edit internal price break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:111
-msgid "Delete internal price break"
-msgstr ""
-
#: part/templates/part/manufacturer.html:11
msgid "Part Manufacturers"
msgstr ""
@@ -4678,7 +4599,7 @@ msgid "Delete manufacturer parts"
msgstr ""
#: part/templates/part/manufacturer.html:53
-#: part/templates/part/supplier.html:57
+#: part/templates/part/supplier.html:56
msgid "Create new manufacturer"
msgstr ""
@@ -4702,125 +4623,27 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
-msgid "Order Price Information"
+#: part/templates/part/navbar.html:77
+msgid "Prices"
msgstr ""
-#: part/templates/part/navbar.html:78
-msgid "Order Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
-#: part/templates/part/part_pricing.html:82
-msgid "Internal Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:107
-msgid "Sales Price Information"
-msgstr ""
-
-#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:109 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:112 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
+#: part/templates/part/navbar.html:117 part/templates/part/navbar.html:120
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:130 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:25
-#: part/templates/part/part_base.html:282
-msgid "Calculate"
-msgstr ""
-
-#: part/templates/part/order_prices.html:32
-msgid "Pricing ranges"
-msgstr ""
-
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/part_pricing.html:22
-msgid "Supplier Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:38
-#: part/templates/part/order_prices.html:63
-#: part/templates/part/order_prices.html:95
-#: part/templates/part/order_prices.html:109
-#: part/templates/part/part_pricing.html:26
-#: part/templates/part/part_pricing.html:52
-#: part/templates/part/part_pricing.html:85
-#: part/templates/part/part_pricing.html:100
-msgid "Unit Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:45
-#: part/templates/part/order_prices.html:70
-#: part/templates/part/order_prices.html:100
-#: part/templates/part/order_prices.html:114
-#: part/templates/part/part_pricing.html:32
-#: part/templates/part/part_pricing.html:58
-#: part/templates/part/part_pricing.html:89
-#: part/templates/part/part_pricing.html:104
-msgid "Total Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:53
-#: part/templates/part/part_pricing.html:40
-msgid "No supplier pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:129
-#: part/templates/part/part_pricing.html:48
-msgid "BOM Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:78
-#: part/templates/part/part_pricing.html:66
-msgid "Note: BOM pricing is incomplete for this part"
-msgstr ""
-
-#: part/templates/part/order_prices.html:85
-#: part/templates/part/part_pricing.html:73
-msgid "No BOM pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:123
-#: part/templates/part/part_pricing.html:113
-msgid "No pricing information is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:139
-msgid "Stock Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:147
-msgid "No stock pricing history is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:166
-#, python-format
-msgid "Single Price - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:178
-#, python-format
-msgid "Single Price Difference - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:190
-#, python-format
-msgid "Part Single Price - %(currency)s"
-msgstr ""
-
#: part/templates/part/params.html:17
msgid "Add new parameter"
msgstr ""
@@ -4841,8 +4664,8 @@ msgstr ""
msgid "Part List"
msgstr ""
-#: part/templates/part/part_base.html:26 templates/js/company.js:156
-#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161
+#: part/templates/part/part_base.html:26 templates/js/company.js:280
+#: templates/js/company.js:480 templates/js/part.js:84 templates/js/part.js:161
msgid "Inactive"
msgstr ""
@@ -4905,7 +4728,7 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131
+#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:132
msgid "Required for Build Orders"
msgstr ""
@@ -4926,10 +4749,86 @@ msgstr ""
msgid "Building"
msgstr ""
+#: part/templates/part/part_base.html:285 part/templates/part/prices.html:131
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:379
+msgid "Create New Part Category"
+msgstr ""
+
+#: part/templates/part/part_base.html:387
+msgid "New Parent"
+msgstr ""
+
+#: part/templates/part/part_base.html:435
+msgid "Edit Part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:27
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:31
+#: part/templates/part/prices.html:58 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:107
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:89
+#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:38
+#: part/templates/part/prices.html:65 part/templates/part/prices.html:95
+#: part/templates/part/prices.html:112
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:46
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:55
+#: part/templates/part/prices.html:235
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:73
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:80
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:113
+#: part/templates/part/prices.html:121
+msgid "No pricing information is available for this part."
+msgstr ""
+
#: part/templates/part/part_tests.html:17
msgid "Add Test Template"
msgstr ""
+#: part/templates/part/part_tests.html:61
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:79
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:91
+msgid "Delete Test Result Template"
+msgstr ""
+
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr ""
@@ -4964,12 +4863,98 @@ msgstr ""
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
-#: part/templates/part/related.html:18
-msgid "Add Related"
+#: part/templates/part/prices.html:12
+msgid "General Price Information"
msgstr ""
-#: part/templates/part/sale_prices.html:10
-msgid "Sell Price Information"
+#: part/templates/part/prices.html:22
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:28
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:29
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:56
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:104
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:105
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:127
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:146
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:147 part/templates/part/prices.html:167
+#: part/templates/part/prices.html:193 part/templates/part/prices.html:224
+#: part/templates/part/prices.html:251 part/templates/part/prices.html:279
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:172
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:180
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:192
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:206 part/views.py:2859
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:223
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:250
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:290
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:340
+#, python-format
+msgid "Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:352
+#, python-format
+msgid "Single Price Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:364
+#, python-format
+msgid "Part Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:464
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/related.html:18
+msgid "Add Related"
msgstr ""
#: part/templates/part/sales_orders.html:18
@@ -5043,216 +5028,180 @@ msgstr ""
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:164
-msgid "Add part attachment"
-msgstr ""
-
-#: part/views.py:217 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr ""
-
-#: part/views.py:221
-msgid "Part attachment updated"
-msgstr ""
-
-#: part/views.py:236
-msgid "Delete Part Attachment"
-msgstr ""
-
-#: part/views.py:244
-msgid "Deleted part attachment"
-msgstr ""
-
-#: part/views.py:253
-msgid "Create Test Template"
-msgstr ""
-
-#: part/views.py:280
-msgid "Edit Test Template"
-msgstr ""
-
-#: part/views.py:294
-msgid "Delete Test Template"
-msgstr ""
-
-#: part/views.py:301
+#: part/views.py:161
msgid "Set Part Category"
msgstr ""
-#: part/views.py:351
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:386
+#: part/views.py:246
msgid "Create Variant"
msgstr ""
-#: part/views.py:471
+#: part/views.py:331
msgid "Copied part"
msgstr ""
-#: part/views.py:525 part/views.py:663
+#: part/views.py:385 part/views.py:523
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:595
+#: part/views.py:455
msgid "Created new part"
msgstr ""
-#: part/views.py:763
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1092
+#: part/views.py:925
+msgid "None"
+msgstr ""
+
+#: part/views.py:984
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1194
-msgid "Upload Part Image"
-msgstr ""
-
-#: part/views.py:1200 part/views.py:1235
-msgid "Updated part image"
-msgstr ""
-
-#: part/views.py:1209
+#: part/views.py:1086
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1238
+#: part/views.py:1112
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:1115
msgid "Part image not found"
msgstr ""
-#: part/views.py:1249
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1284
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1314
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1335
+#: part/views.py:1212
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1356
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1367
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1501
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1862
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1887 part/views.py:1890
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr ""
-#: part/views.py:1896
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1934
+#: part/views.py:1811
msgid "Select a part"
msgstr ""
-#: part/views.py:1940
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1944
+#: part/views.py:1821
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2090
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2222
+#: part/views.py:2099
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2363
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2373
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2380
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2388
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2438
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2452
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2512
-msgid "Edit Part Category"
-msgstr ""
-
-#: part/views.py:2550
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2556
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2608
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2709
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2765
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2784
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2854
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2910
-msgid "Confim BOM item deletion"
+#: part/views.py:2792
+msgid "Added new price break"
msgstr ""
-#: part/views.py:2998
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3006
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5358,17 +5307,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1739
+#: stock/models.py:1759
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1745
+#: stock/models.py:1765
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:1012
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr ""
@@ -5380,287 +5329,287 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:212
+#: stock/api.py:211
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:280
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
+#: stock/forms.py:81 stock/forms.py:385 stock/models.py:513
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:419
+#: stock/forms.py:82 stock/forms.py:386
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:118
+#: stock/forms.py:85
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:169
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:173 stock/forms.py:349
+#: stock/forms.py:140 stock/forms.py:316
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:203 stock/forms.py:259
+#: stock/forms.py:170 stock/forms.py:226
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:75
+#: stock/forms.py:234 templates/js/table_filters.js:75
#: templates/js/table_filters.js:138
msgid "Include sublocations"
msgstr ""
-#: stock/forms.py:267
+#: stock/forms.py:234
msgid "Include stock items in sub locations"
msgstr ""
-#: stock/forms.py:302
+#: stock/forms.py:269
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:309
+#: stock/forms.py:276
msgid "Stock quantity to assign"
msgstr ""
-#: stock/forms.py:337
+#: stock/forms.py:304
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:347
+#: stock/forms.py:314
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/forms.py:375
+#: stock/forms.py:342
msgid "Destination stock location"
msgstr ""
-#: stock/forms.py:377
+#: stock/forms.py:344
msgid "Add note (required)"
msgstr ""
-#: stock/forms.py:381 stock/views.py:852 stock/views.py:1051
+#: stock/forms.py:348 stock/views.py:705 stock/views.py:904
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/forms.py:381
+#: stock/forms.py:348
msgid "Confirm movement of stock items"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set Default Location"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:52 stock/models.py:542
+#: stock/models.py:56 stock/models.py:550
msgid "Owner"
msgstr ""
-#: stock/models.py:53 stock/models.py:543
+#: stock/models.py:57 stock/models.py:551
msgid "Select Owner"
msgstr ""
-#: stock/models.py:271
+#: stock/models.py:279
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:307
+#: stock/models.py:315
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:317 stock/models.py:326
+#: stock/models.py:325 stock/models.py:334
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:318
+#: stock/models.py:326
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:340
+#: stock/models.py:348
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:346
+#: stock/models.py:354
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:361
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:395
+#: stock/models.py:403
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:412
msgid "Base part"
msgstr ""
-#: stock/models.py:413
+#: stock/models.py:421
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:426 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:421
+#: stock/models.py:429
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:428
+#: stock/models.py:436
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:433 stock/templates/stock/item_base.html:270
+#: stock/models.py:441 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:436
+#: stock/models.py:444
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:452
+#: stock/models.py:460
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:472
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:476
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:477
+#: stock/models.py:485
msgid "Source Build"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:487
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:490
+#: stock/models.py:498
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:493
+#: stock/models.py:501
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:499
+#: stock/models.py:507
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:514
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:529 stock/templates/stock/item_notes.html:13
+#: stock/models.py:537 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:538
+#: stock/models.py:546
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1006
+#: stock/models.py:1014
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1012
+#: stock/models.py:1020
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1018
+#: stock/models.py:1026
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1021
+#: stock/models.py:1029
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1024
+#: stock/models.py:1032
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1031
+#: stock/models.py:1039
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1197
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1679
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1716
+#: stock/models.py:1736
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1722
+#: stock/models.py:1742
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1740
+#: stock/models.py:1760
msgid "Test name"
msgstr ""
-#: stock/models.py:1746 templates/js/table_filters.js:217
+#: stock/models.py:1766 templates/js/table_filters.js:222
msgid "Test result"
msgstr ""
-#: stock/models.py:1752
+#: stock/models.py:1772
msgid "Test output value"
msgstr ""
-#: stock/models.py:1759
+#: stock/models.py:1779
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1785
msgid "Test notes"
msgstr ""
@@ -5850,6 +5799,10 @@ msgstr ""
msgid "No stocktake performed"
msgstr ""
+#: stock/templates/stock/item_base.html:499
+msgid "Edit Stock Status"
+msgstr ""
+
#: stock/templates/stock/item_childs.html:12
msgid "Child Stock Items"
msgstr ""
@@ -5909,6 +5862,19 @@ msgstr ""
msgid "Add Test Data"
msgstr ""
+#: stock/templates/stock/item_tests.html:86
+#: stock/templates/stock/item_tests.html:111
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:131
+msgid "Edit Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:145
+msgid "Delete Test Result"
+msgstr ""
+
#: stock/templates/stock/location.html:20
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
@@ -5957,7 +5923,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:97 users/models.py:41
+#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -5997,7 +5963,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1196
msgid "Convert Stock Item"
msgstr ""
@@ -6030,8 +5996,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
-#: stock/views.py:1830
+#: stock/views.py:230 stock/views.py:1175 stock/views.py:1297
+#: stock/views.py:1662
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -6039,208 +6005,188 @@ msgstr ""
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:265
-msgid "Add Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:311
-msgid "Edit Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:327
-msgid "Delete Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:343
+#: stock/views.py:264
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:273
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:297
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:385
+#: stock/views.py:306
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:396
+#: stock/views.py:317
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:407
+#: stock/views.py:328
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:345
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:444
-msgid "Add Test Result"
-msgstr ""
-
-#: stock/views.py:484
-msgid "Edit Test Result"
-msgstr ""
-
-#: stock/views.py:501
-msgid "Delete Test Result"
-msgstr ""
-
-#: stock/views.py:509
+#: stock/views.py:362
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:630
+#: stock/views.py:483
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:656
+#: stock/views.py:509
msgid "Install Stock Item"
msgstr ""
-#: stock/views.py:755
+#: stock/views.py:608
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:863
+#: stock/views.py:716
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:888
+#: stock/views.py:741
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Take"
msgstr ""
-#: stock/views.py:1001
+#: stock/views.py:854
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:187
+#: stock/views.py:854 users/models.py:188
msgid "Add"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:855
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:1031
+#: stock/views.py:884
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:1036
+#: stock/views.py:889
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:1043
+#: stock/views.py:896
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:1107
+#: stock/views.py:960
msgid "No action performed"
msgstr ""
-#: stock/views.py:1122
+#: stock/views.py:975
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:1137
+#: stock/views.py:990
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:1150
+#: stock/views.py:1003
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:1190
+#: stock/views.py:1043
msgid "No items were moved"
msgstr ""
-#: stock/views.py:1193
+#: stock/views.py:1046
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:1212
+#: stock/views.py:1065
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1222
-msgid "Edit Stock Item Status"
-msgstr ""
-
-#: stock/views.py:1245
+#: stock/views.py:1077
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1482
+#: stock/views.py:1314
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:327
+#: stock/views.py:1407 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1717
+#: stock/views.py:1549
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1799
+#: stock/views.py:1631
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1899
+#: stock/views.py:1731
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1912
+#: stock/views.py:1744
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1923
+#: stock/views.py:1755
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1930
+#: stock/views.py:1762
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1939
+#: stock/views.py:1771
msgid "Add Stock Tracking Entry"
msgstr ""
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
msgstr ""
@@ -6269,35 +6215,39 @@ msgstr ""
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:145
-msgid "Expired Stock"
+#: templates/InvenTree/index.html:131
+msgid "Depleted Stock"
msgstr ""
#: templates/InvenTree/index.html:146
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:147
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:192
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:185
+#: templates/InvenTree/index.html:193
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:214
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:207
+#: templates/InvenTree/index.html:215
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:237
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:230
+#: templates/InvenTree/index.html:238
msgid "Overdue Sales Orders"
msgstr ""
@@ -6582,24 +6532,12 @@ msgstr ""
msgid "copy version information"
msgstr ""
-#: templates/about.html:100 templates/js/modals.js:568
-#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54
-#: templates/modals.html:97
+#: templates/about.html:100 templates/js/modals.js:34
+#: templates/js/modals.js:677 templates/js/modals.js:970
+#: templates/modals.html:29 templates/modals.html:54 templates/modals.html:97
msgid "Close"
msgstr ""
-#: templates/attachment_table.html:6
-msgid "Add Attachment"
-msgstr ""
-
-#: templates/attachment_table.html:17
-msgid "Uploaded"
-msgstr ""
-
-#: templates/attachment_table.html:35
-msgid "Delete attachment"
-msgstr ""
-
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6616,6 +6554,22 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
+#: templates/js/attachment.js:16
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/attachment.js:56
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/attachment.js:69
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/attachment.js:76
+msgid "Delete attachment"
+msgstr ""
+
#: templates/js/barcode.js:8
msgid "Scan barcode data here using wedge scanner"
msgstr ""
@@ -6644,7 +6598,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:921
+#: templates/js/barcode.js:119 templates/js/modals.js:1030
msgid "Invalid server response"
msgstr ""
@@ -6744,7 +6698,7 @@ msgstr ""
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:372
+#: templates/js/bom.js:372 templates/js/bom.js:519
msgid "Delete BOM Item"
msgstr ""
@@ -6772,7 +6726,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/build.js:222 templates/js/order.js:382
+#: templates/js/build.js:222 templates/js/order.js:449
msgid "Location not specified"
msgstr ""
@@ -6798,7 +6752,7 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
-#: templates/js/stock.js:514 templates/js/stock.js:966
+#: templates/js/stock.js:514 templates/js/stock.js:980
msgid "Select"
msgstr ""
@@ -6810,45 +6764,69 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/company.js:74
+#: templates/js/company.js:45
+msgid "Edit Company"
+msgstr ""
+
+#: templates/js/company.js:66
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/company.js:143
msgid "Parts Supplied"
msgstr ""
-#: templates/js/company.js:83
+#: templates/js/company.js:152
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/company.js:96
+#: templates/js/company.js:165
msgid "No company information found"
msgstr ""
-#: templates/js/company.js:129
+#: templates/js/company.js:183
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/company.js:200
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/company.js:253
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/company.js:148 templates/js/company.js:347
+#: templates/js/company.js:272 templates/js/company.js:472
#: templates/js/part.js:68 templates/js/part.js:153
msgid "Template part"
msgstr ""
-#: templates/js/company.js:152 templates/js/company.js:351
+#: templates/js/company.js:276 templates/js/company.js:476
#: templates/js/part.js:72 templates/js/part.js:157
msgid "Assembled part"
msgstr ""
-#: templates/js/company.js:226
+#: templates/js/company.js:350
msgid "No parameters found"
msgstr ""
-#: templates/js/company.js:262
+#: templates/js/company.js:386
msgid "Edit parameter"
msgstr ""
-#: templates/js/company.js:263
+#: templates/js/company.js:387
msgid "Delete parameter"
msgstr ""
-#: templates/js/company.js:328
+#: templates/js/company.js:406
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/company.js:417
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/company.js:453
msgid "No supplier parts found"
msgstr ""
@@ -6876,6 +6854,83 @@ msgstr ""
msgid "Create filter"
msgstr ""
+#: templates/js/forms.js:278 templates/js/forms.js:291
+#: templates/js/forms.js:303 templates/js/forms.js:315
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/forms.js:279
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:292
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:304
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:316
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:583 templates/js/modals.js:1040
+msgid "No Response"
+msgstr ""
+
+#: templates/js/forms.js:584 templates/js/modals.js:1041
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/forms.js:590 templates/js/modals.js:1050
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/forms.js:591 templates/js/modals.js:1051
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/forms.js:597 templates/js/modals.js:1055
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/forms.js:598 templates/js/modals.js:1056
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/forms.js:604 templates/js/modals.js:1060
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/forms.js:605 templates/js/modals.js:1061
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/forms.js:611 templates/js/modals.js:1065
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/forms.js:612 templates/js/modals.js:1066
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/forms.js:618 templates/js/modals.js:1069
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/forms.js:788 templates/modals.html:21 templates/modals.html:47
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/forms.js:1161
+msgid "Searching"
+msgstr ""
+
+#: templates/js/forms.js:1301
+msgid "Clear input"
+msgstr ""
+
#: templates/js/label.js:10 templates/js/report.js:98
msgid "Select Stock Items"
msgstr ""
@@ -6916,112 +6971,102 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:265
-msgid "Waiting for server..."
-msgstr ""
-
-#: templates/js/modals.js:424
-msgid "Show Error Information"
-msgstr ""
-
-#: templates/js/modals.js:491 templates/modals.html:76
-msgid "Accept"
-msgstr ""
-
-#: templates/js/modals.js:492 templates/modals.html:75
+#: templates/js/modals.js:59 templates/js/modals.js:105
+#: templates/js/modals.js:601 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:556
-msgid "Loading Data"
-msgstr ""
-
-#: templates/js/modals.js:567 templates/js/modals.js:860
+#: templates/js/modals.js:60 templates/js/modals.js:104
+#: templates/js/modals.js:676 templates/js/modals.js:969
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:103
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/modals.js:374
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/modals.js:533
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/modals.js:600 templates/modals.html:76
+msgid "Accept"
+msgstr ""
+
+#: templates/js/modals.js:665
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/modals.js:920
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:920
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:824
+#: templates/js/modals.js:933
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:921
+#: templates/js/modals.js:1030
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:931
-msgid "No Response"
-msgstr ""
-
-#: templates/js/modals.js:932
-msgid "No response from the InvenTree server"
-msgstr ""
-
-#: templates/js/modals.js:936
+#: templates/js/modals.js:1045
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:937
+#: templates/js/modals.js:1046
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:941
-msgid "Error 401: Not Authenticated"
+#: templates/js/model_renderers.js:21
+msgid "Company ID"
msgstr ""
-#: templates/js/modals.js:942
-msgid "Authentication credentials not supplied"
+#: templates/js/model_renderers.js:63
+msgid "Location ID"
msgstr ""
-#: templates/js/modals.js:946
-msgid "Error 403: Permission Denied"
+#: templates/js/model_renderers.js:90
+msgid "Part ID"
msgstr ""
-#: templates/js/modals.js:947
-msgid "You do not have the required permissions to access this function"
+#: templates/js/model_renderers.js:126
+msgid "Category ID"
msgstr ""
-#: templates/js/modals.js:951
-msgid "Error 404: Resource Not Found"
+#: templates/js/model_renderers.js:150
+msgid "Supplier Part ID"
msgstr ""
-#: templates/js/modals.js:952
-msgid "The requested resource could not be located on the server"
+#: templates/js/order.js:31
+msgid "Create Sales Order"
msgstr ""
-#: templates/js/modals.js:956
-msgid "Error 408: Timeout"
-msgstr ""
-
-#: templates/js/modals.js:957
-msgid "Connection timeout while requesting data from server"
-msgstr ""
-
-#: templates/js/modals.js:960
-msgid "Error requesting form data"
-msgstr ""
-
-#: templates/js/order.js:138
+#: templates/js/order.js:200
msgid "No purchase orders found"
msgstr ""
-#: templates/js/order.js:162 templates/js/order.js:257
+#: templates/js/order.js:224 templates/js/order.js:319
msgid "Order is overdue"
msgstr ""
-#: templates/js/order.js:234
+#: templates/js/order.js:296
msgid "No sales orders found"
msgstr ""
-#: templates/js/order.js:343
+#: templates/js/order.js:333
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/order.js:410
msgid "No sales order allocations found"
msgstr ""
@@ -7061,11 +7106,11 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:476 templates/js/table_filters.js:323
+#: templates/js/part.js:476 templates/js/table_filters.js:328
msgid "Low stock"
msgstr ""
-#: templates/js/part.js:660 templates/js/stock.js:990
+#: templates/js/part.js:660 templates/js/stock.js:1004
msgid "Path"
msgstr ""
@@ -7085,7 +7130,22 @@ msgstr ""
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/part.js:806
+#: templates/js/part.js:786
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/part.js:839
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:840
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:959
msgid "Single Price Difference"
msgstr ""
@@ -7263,75 +7323,75 @@ msgstr ""
msgid "Stocktake"
msgstr ""
-#: templates/js/stock.js:853
+#: templates/js/stock.js:867
msgid "Stock Status"
msgstr ""
-#: templates/js/stock.js:868
+#: templates/js/stock.js:882
msgid "Set Stock Status"
msgstr ""
-#: templates/js/stock.js:882
+#: templates/js/stock.js:896
msgid "Select Status Code"
msgstr ""
-#: templates/js/stock.js:883
+#: templates/js/stock.js:897
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1022
+#: templates/js/stock.js:1036
msgid "Invalid date"
msgstr ""
-#: templates/js/stock.js:1069
+#: templates/js/stock.js:1083
msgid "Location no longer exists"
msgstr ""
-#: templates/js/stock.js:1088
+#: templates/js/stock.js:1102
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/stock.js:1107
+#: templates/js/stock.js:1121
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/stock.js:1125
+#: templates/js/stock.js:1139
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/stock.js:1148
+#: templates/js/stock.js:1162
msgid "Added"
msgstr ""
-#: templates/js/stock.js:1156
+#: templates/js/stock.js:1170
msgid "Removed"
msgstr ""
-#: templates/js/stock.js:1188
+#: templates/js/stock.js:1202
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1200
+#: templates/js/stock.js:1214
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1201
+#: templates/js/stock.js:1215
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1325
+#: templates/js/stock.js:1339
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1366
+#: templates/js/stock.js:1380
msgid "No installed items"
msgstr ""
-#: templates/js/stock.js:1389
+#: templates/js/stock.js:1403
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1417
+#: templates/js/stock.js:1431
msgid "Uninstall Stock Item"
msgstr ""
@@ -7352,7 +7412,7 @@ msgid "Include locations"
msgstr ""
#: templates/js/table_filters.js:86 templates/js/table_filters.js:87
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:305
msgid "Include subcategories"
msgstr ""
@@ -7385,7 +7445,7 @@ msgstr ""
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:290
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:295
msgid "Active parts"
msgstr ""
@@ -7457,43 +7517,51 @@ msgstr ""
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:236
+#: templates/js/table_filters.js:211
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/table_filters.js:212
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/table_filters.js:241
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
+#: templates/js/table_filters.js:265 templates/js/table_filters.js:282
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:306
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:305
+#: templates/js/table_filters.js:310
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:311
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:311
+#: templates/js/table_filters.js:316
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:319
+#: templates/js/table_filters.js:324
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:335
+#: templates/js/table_filters.js:340
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:347
+#: templates/js/table_filters.js:352
msgid "Purchasable"
msgstr ""
@@ -7550,10 +7618,6 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:47
-msgid "Form errors exist"
-msgstr ""
-
#: templates/navbar.html:13
msgid "Toggle navigation"
msgstr ""
@@ -7570,7 +7634,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:38
+#: templates/navbar.html:77 users/models.py:39
msgid "Admin"
msgstr ""
@@ -7790,35 +7854,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:174
+#: users/models.py:175
msgid "Permission set"
msgstr ""
-#: users/models.py:182
+#: users/models.py:183
msgid "Group"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "View"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "Permission to view items"
msgstr ""
-#: users/models.py:187
+#: users/models.py:188
msgid "Permission to add items"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Change"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:191
+#: users/models.py:192
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 4b8bfcdd8a..4db90764bd 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-01 22:35+0000\n"
-"PO-Revision-Date: 2021-07-01 22:38\n"
+"POT-Creation-Date: 2021-07-03 12:15+0000\n"
+"PO-Revision-Date: 2021-07-03 12:44\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -29,14 +29,14 @@ msgstr "İşlem belirtilmedi"
msgid "No matching action found"
msgstr "Eşleşen eylem bulunamadı"
-#: InvenTree/fields.py:84
+#: InvenTree/fields.py:99
msgid "Enter date"
msgstr "Tarih giriniz"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
-#: order/forms.py:75 part/forms.py:134
+#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
+#: order/forms.py:74 part/forms.py:118 templates/js/forms.js:486
msgid "Confirm"
msgstr "Onay"
@@ -77,8 +77,8 @@ msgstr "Kategori Seçin"
msgid "Duplicate serial: {n}"
msgstr "Tekrarlanan seri {n}"
-#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
-#: stock/views.py:1795
+#: InvenTree/helpers.py:403 order/models.py:311 order/models.py:421
+#: stock/views.py:1627
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
@@ -106,49 +106,53 @@ msgstr "Seri numarası bulunamadı"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşmeli ({q})"
-#: InvenTree/models.py:59 stock/models.py:1758
+#: InvenTree/models.py:61 stock/models.py:1778
msgid "Attachment"
msgstr "Ek"
-#: InvenTree/models.py:60
+#: InvenTree/models.py:62
msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
-#: InvenTree/models.py:62 templates/attachment_table.html:16
+#: InvenTree/models.py:64 templates/js/attachment.js:52
msgid "Comment"
msgstr "Yorum"
-#: InvenTree/models.py:62
+#: InvenTree/models.py:64
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2043
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1179
+#: templates/js/stock.js:1193
msgid "User"
msgstr "Kullanıcı"
-#: InvenTree/models.py:72
+#: InvenTree/models.py:74
msgid "upload date"
msgstr "yükleme tarihi"
-#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396
-#: label/models.py:102 part/models.py:671 part/models.py:2163
+#: InvenTree/models.py:102
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:414
+#: label/models.py:103 part/models.py:680 part/models.py:2192
#: part/templates/part/params.html:27 report/models.py:180
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/company.js:235 templates/js/part.js:118
-#: templates/js/part.js:642 templates/js/stock.js:972
+#: templates/js/company.js:359 templates/js/part.js:118
+#: templates/js/part.js:642 templates/js/stock.js:986
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:114 build/models.py:135
-#: build/templates/build/detail.html:21 company/models.py:339
-#: company/models.py:532 company/templates/company/detail.html:27
+#: InvenTree/models.py:125 build/models.py:139
+#: build/templates/build/detail.html:21 company/models.py:353
+#: company/models.py:554 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
-#: part/models.py:695 part/templates/part/detail.html:54
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:110
+#: order/models.py:154 order/templates/order/purchase_order_detail.html:174
+#: part/models.py:704 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
#: report/templates/report/inventree_build_order_base.html:118
@@ -156,39 +160,43 @@ msgstr "Adı"
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
#: templates/js/build.js:834 templates/js/build.js:1102
-#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
+#: templates/js/company.js:125 templates/js/order.js:245
+#: templates/js/order.js:347 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
-#: templates/js/stock.js:557 templates/js/stock.js:984
-#: templates/js/stock.js:1029
+#: templates/js/stock.js:557 templates/js/stock.js:998
+#: templates/js/stock.js:1043
msgid "Description"
msgstr "Açıklama"
-#: InvenTree/models.py:115
+#: InvenTree/models.py:126
msgid "Description (optional)"
msgstr "Açıklama (isteğe bağlı)"
-#: InvenTree/models.py:123
+#: InvenTree/models.py:134
msgid "parent"
msgstr "üst"
-#: InvenTree/settings.py:504
+#: InvenTree/serializers.py:52
+msgid "Must be a valid number"
+msgstr ""
+
+#: InvenTree/settings.py:505
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:505
+#: InvenTree/settings.py:506
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:506
+#: InvenTree/settings.py:507
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:507
+#: InvenTree/settings.py:508
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:508
+#: InvenTree/settings.py:509
msgid "Turkish"
msgstr "Türkçe"
@@ -446,50 +454,48 @@ msgid "Order target date"
msgstr "Emir hedef tarihi"
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
+#: build/templates/build/detail.html:121
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:881 templates/js/order.js:200
-#: templates/js/order.js:298
+#: templates/js/build.js:881 templates/js/order.js:262
+#: templates/js/order.js:365
msgid "Target Date"
msgstr "Hedeflenen tarih"
-#: build/forms.py:43 build/models.py:225
+#: build/forms.py:43 build/models.py:229
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1354
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:31 common/models.py:741
-#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
-#: order/forms.py:289 order/models.py:613 order/models.py:835
-#: order/templates/order/order_wizard/match_parts.html:30
+#: company/forms.py:124 company/templates/company/supplier_part_pricing.html:79
+#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:702
+#: order/models.py:941 order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/purchase_order_detail.html:179
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:162
-#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
-#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
-#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:203
-#: part/templates/part/part_pricing.html:16
-#: part/templates/part/sale_prices.html:85
+#: order/templates/order/purchase_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:80
+#: order/templates/order/sales_order_detail.html:87
+#: order/templates/order/sales_order_detail.html:172
+#: order/templates/order/sales_order_detail.html:244 part/forms.py:314
+#: part/forms.py:344 part/forms.py:360 part/forms.py:376 part/models.py:2330
+#: part/templates/part/part_pricing.html:16 part/templates/part/prices.html:377
+#: part/templates/part/prices.html:474
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308
+#: stock/forms.py:142 stock/forms.py:275
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
-#: templates/js/build.js:1112 templates/js/order.js:393
-#: templates/js/part.js:796 templates/js/stock.js:1164
-#: templates/js/stock.js:1383
+#: templates/js/build.js:1112 templates/js/model_renderers.js:43
+#: templates/js/order.js:460 templates/js/part.js:827 templates/js/part.js:949
+#: templates/js/part.js:1005 templates/js/stock.js:1178
+#: templates/js/stock.js:1397
msgid "Quantity"
msgstr "Miktar"
@@ -501,7 +507,7 @@ msgstr "Yapılacak öge sayısı"
msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
-#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:114 stock/forms.py:85
msgid "Serial Numbers"
msgstr "Seri Numaraları"
@@ -530,12 +536,12 @@ msgid "Mark build as complete"
msgstr "Yapım işini tamamlandı olarak işaretle"
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: stock/forms.py:347 stock/templates/stock/item_base.html:285
+#: stock/forms.py:314 stock/templates/stock/item_base.html:285
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:586 templates/js/order.js:378
-#: templates/js/stock.js:643 templates/js/stock.js:1056
+#: templates/js/build.js:586 templates/js/order.js:445
+#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr "Konum"
@@ -544,13 +550,13 @@ msgid "Location of completed parts"
msgstr "Tamamlanmış parçaların konumu"
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:465
+#: build/templates/build/detail.html:59 order/models.py:545
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:868
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:630 templates/js/stock.js:1133
-#: templates/js/stock.js:1399
+#: templates/js/order.js:249 templates/js/order.js:352
+#: templates/js/stock.js:630 templates/js/stock.js:1147
+#: templates/js/stock.js:1413
msgid "Status"
msgstr "Durum"
@@ -582,60 +588,60 @@ msgstr "Yapım işi iptalini onayla"
msgid "Select quantity of stock to allocate"
msgstr "Tahsis edilecek stok miktarını seçiniz"
-#: build/models.py:66 build/templates/build/build_base.html:9
+#: build/models.py:70 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:195
msgid "Build Order"
msgstr "Yapım İşi Emri"
-#: build/models.py:67 build/templates/build/index.html:8
+#: build/models.py:71 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
-#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:191
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
+#: templates/InvenTree/settings/tabs.html:34 users/models.py:44
msgid "Build Orders"
msgstr "Yapım İşi Emirleri"
-#: build/models.py:127
+#: build/models.py:131
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:128 order/models.py:98 order/models.py:615
-#: order/templates/order/purchase_order_detail.html:174
-#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
+#: build/models.py:132 order/models.py:242 order/models.py:529
+#: order/models.py:709 order/templates/order/purchase_order_detail.html:201
+#: order/templates/order/sales_order_detail.html:239 part/models.py:2339
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr "Referans"
-#: build/models.py:138
+#: build/models.py:142
msgid "Brief description of the build"
msgstr "Yapım işinin kısa açıklaması"
-#: build/models.py:147 build/templates/build/build_base.html:163
+#: build/models.py:151 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr "Üst Yapım İşi"
-#: build/models.py:148
+#: build/models.py:152
msgid "BuildOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
-#: build/models.py:153 build/templates/build/auto_allocate.html:16
+#: build/models.py:157 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:657 order/models.py:712
+#: build/templates/build/detail.html:26 company/models.py:689
+#: order/models.py:755 order/models.py:814
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:132
+#: order/templates/order/purchase_order_detail.html:159
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:214 part/models.py:321
-#: part/models.py:1975 part/models.py:1987 part/models.py:2002
-#: part/models.py:2020 part/models.py:2095 part/models.py:2191
-#: part/models.py:2277 part/templates/part/part_app_base.html:8
+#: order/templates/order/sales_order_detail.html:224 part/models.py:325
+#: part/models.py:1988 part/models.py:2004 part/models.py:2023
+#: part/models.py:2041 part/models.py:2120 part/models.py:2224
+#: part/models.py:2314 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
@@ -644,222 +650,222 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
#: templates/js/build.js:552 templates/js/build.js:839
-#: templates/js/build.js:1079 templates/js/company.js:140
-#: templates/js/company.js:339 templates/js/part.js:241
+#: templates/js/build.js:1079 templates/js/company.js:264
+#: templates/js/company.js:464 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
-#: templates/js/stock.js:1371
+#: templates/js/stock.js:1385
msgid "Part"
msgstr "Parça"
-#: build/models.py:161
+#: build/models.py:165
msgid "Select part to build"
msgstr "Yapım işi için parça seçin"
-#: build/models.py:166
+#: build/models.py:170
msgid "Sales Order Reference"
msgstr "Satış Emri Referansı"
-#: build/models.py:170
+#: build/models.py:174
msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
-#: build/models.py:175
+#: build/models.py:179
msgid "Source Location"
msgstr "Kaynak Konum"
-#: build/models.py:179
+#: build/models.py:183
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)"
-#: build/models.py:184
+#: build/models.py:188
msgid "Destination Location"
msgstr "Hedef Konum"
-#: build/models.py:188
+#: build/models.py:192
msgid "Select location where the completed items will be stored"
msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz"
-#: build/models.py:192
+#: build/models.py:196
msgid "Build Quantity"
msgstr "Yapım İşi Miktarı"
-#: build/models.py:195
+#: build/models.py:199
msgid "Number of stock items to build"
msgstr "Yapım işi stok kalemlerinin sayısı"
-#: build/models.py:199
+#: build/models.py:203
msgid "Completed items"
msgstr "Tamamlanmış ögeler"
-#: build/models.py:201
+#: build/models.py:205
msgid "Number of stock items which have been completed"
msgstr "Tamamlanan stok kalemlerinin sayısı"
-#: build/models.py:205 part/templates/part/part_base.html:167
+#: build/models.py:209 part/templates/part/part_base.html:167
msgid "Build Status"
msgstr "Yapım İşi Durumu"
-#: build/models.py:209
+#: build/models.py:213
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:213 stock/models.py:462
+#: build/models.py:217 stock/models.py:470
msgid "Batch Code"
msgstr "Sıra numarası"
-#: build/models.py:217
+#: build/models.py:221
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:220 order/models.py:104 part/models.py:867
-#: part/templates/part/detail.html:126 templates/js/order.js:293
+#: build/models.py:224 order/models.py:158 part/models.py:876
+#: part/templates/part/detail.html:126 templates/js/order.js:360
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:224 order/models.py:471
+#: build/models.py:228 order/models.py:551
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
-#: build/models.py:228 order/models.py:217 templates/js/build.js:886
+#: build/models.py:232 order/models.py:284 templates/js/build.js:886
msgid "Completion Date"
msgstr "Tamamlama tarihi"
-#: build/models.py:234
+#: build/models.py:238
msgid "completed by"
msgstr "tamamlayan"
-#: build/models.py:242
+#: build/models.py:246
msgid "Issued by"
msgstr "Veren"
-#: build/models.py:243
+#: build/models.py:247
msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
-#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:118
+#: build/models.py:255 build/templates/build/build_base.html:184
+#: build/templates/build/detail.html:105 order/models.py:172
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:871
+#: order/templates/order/sales_order_base.html:140 part/models.py:880
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr "Sorumlu"
-#: build/models.py:252
+#: build/models.py:256
msgid "User responsible for this build order"
msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
-#: build/models.py:257 build/templates/build/detail.html:91
+#: build/models.py:261 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
#: company/templates/company/manufacturer_part_detail.html:28
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:456 stock/templates/stock/item_base.html:345
+#: stock/models.py:464 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:258 part/models.py:729 stock/models.py:458
+#: build/models.py:262 part/models.py:738 stock/models.py:466
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
-#: build/models.py:262 build/templates/build/navbar.html:53
-#: company/models.py:132 company/models.py:539
+#: build/models.py:266 build/templates/build/navbar.html:53
+#: company/models.py:141 company/models.py:561
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:122
-#: order/models.py:617 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:176
+#: order/models.py:711 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/purchase_order_detail.html:243
-#: order/templates/order/sales_order_detail.html:309
+#: order/templates/order/purchase_order_detail.html:270
+#: order/templates/order/sales_order_detail.html:319
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:145
+#: order/templates/order/so_navbar.html:36 part/models.py:865
+#: part/templates/part/navbar.html:133
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
+#: stock/forms.py:140 stock/forms.py:284 stock/forms.py:316 stock/forms.py:344
+#: stock/models.py:536 stock/models.py:1678 stock/models.py:1784
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:713
msgid "Notes"
msgstr "Notlar"
-#: build/models.py:263
+#: build/models.py:267
msgid "Extra build notes"
msgstr "Yapım işi için ekstra notlar"
-#: build/models.py:740
+#: build/models.py:744
msgid "No build output specified"
msgstr "Yapım işi çıktısı belirtilmedi"
-#: build/models.py:743
+#: build/models.py:747
msgid "Build output is already completed"
msgstr "Yapım işi çıktısı zaten tamamlanmış"
-#: build/models.py:746
+#: build/models.py:750
msgid "Build output does not match Build Order"
msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor"
-#: build/models.py:1152
+#: build/models.py:1160
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr "Yapım işi ögesi; yapım işi, stok kalemi ve kurulacak yer için benzersiz olmalıdır"
-#: build/models.py:1177
+#: build/models.py:1185
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir"
-#: build/models.py:1181
+#: build/models.py:1189
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr "Tahsis edilecek miktar ({n}) mevcut miktarı ({q}) geçmemeli"
-#: build/models.py:1188 order/models.py:809
+#: build/models.py:1196 order/models.py:915
msgid "StockItem is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1192 order/models.py:812
+#: build/models.py:1200 order/models.py:918
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1196
+#: build/models.py:1204
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1256
+#: build/models.py:1264
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "{p} parçasının malzeme listesindeki seçili stok kalemi bulunamadı"
-#: build/models.py:1316 stock/templates/stock/item_base.html:317
+#: build/models.py:1324 stock/templates/stock/item_base.html:317
#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr "Yapım İşi"
-#: build/models.py:1317
+#: build/models.py:1325
msgid "Build to allocate parts"
msgstr "Yapım işi için tahsis edilen parçalar"
-#: build/models.py:1333 stock/templates/stock/item_base.html:8
+#: build/models.py:1341 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
#: templates/js/build.js:211 templates/js/build.js:929
-#: templates/js/order.js:366 templates/js/order.js:371
-#: templates/js/stock.js:1115
+#: templates/js/order.js:433 templates/js/order.js:438
+#: templates/js/stock.js:1129
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:1334
+#: build/models.py:1342
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:1347
+#: build/models.py:1355
msgid "Stock quantity to allocate to build"
msgstr "Yapım işi için tahsis edilen stok miktarı"
-#: build/models.py:1355
+#: build/models.py:1363
msgid "Install into"
msgstr "Kurulduğu yer"
-#: build/models.py:1356
+#: build/models.py:1364
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
@@ -893,7 +899,7 @@ msgstr "Gerekli parçaları sipariş edin"
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:724
#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr "Parça Siparişi"
@@ -912,23 +918,52 @@ msgstr "Bu yapım işi emri, herhangi bir takip edilmeyen malzeme listesi öğes
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:160
+#: order/templates/order/sales_order_detail.html:85
+#: order/templates/order/sales_order_detail.html:170
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:450 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:570
+#: stock/models.py:458 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570 templates/js/model_renderers.js:41
msgid "Serial Number"
msgstr "Seri Numara"
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
-#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:124
+#: part/templates/part/navbar.html:127 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr "Ekler"
+#: build/templates/build/attachments.html:51
+#: order/templates/order/so_attachments.html:79
+#: part/templates/part/attachments.html:81
+#: stock/templates/stock/item_attachments.html:81
+#: templates/attachment_table.html:6
+msgid "Add Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:69
+#: order/templates/order/so_attachments.html:52
+#: part/templates/part/attachments.html:35
+#: stock/templates/stock/item_attachments.html:49
+msgid "Edit Attachment"
+msgstr "Ek Düzenle"
+
+#: build/templates/build/attachments.html:76
+#: order/templates/order/so_attachments.html:58
+#: part/templates/part/attachments.html:44
+#: stock/templates/stock/item_attachments.html:58
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/attachments.html:77
+#: order/templates/order/so_attachments.html:59
+#: part/templates/part/attachments.html:45
+#: stock/templates/stock/item_attachments.html:59
+msgid "Delete Attachment"
+msgstr "Eki Sil"
+
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
msgstr "Stoku Otomatik Olarak Tahsis Et"
@@ -989,8 +1024,8 @@ msgstr "Yönetici görünümü"
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
#: order/templates/order/sales_order_base.html:88
-#: templates/js/table_filters.js:245 templates/js/table_filters.js:264
-#: templates/js/table_filters.js:281
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:269
+#: templates/js/table_filters.js:286
msgid "Overdue"
msgstr "Vadesi geçmiş"
@@ -1036,13 +1071,13 @@ msgid "Progress"
msgstr "İlerleme"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:710
+#: build/templates/build/detail.html:84 order/models.py:812
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:279 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:279 templates/js/order.js:307
msgid "Sales Order"
msgstr "Sipariş Emri"
@@ -1183,10 +1218,10 @@ msgstr "Stok Kaynağı"
msgid "Stock can be taken from any available location."
msgstr "Stok herhangi bir konumdan alınabilir."
-#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
-#: order/templates/order/purchase_order_detail.html:239
-#: order/templates/order/receive_parts.html:25 stock/forms.py:169
-#: stock/forms.py:375
+#: build/templates/build/detail.html:46 order/forms.py:88 order/models.py:771
+#: order/templates/order/purchase_order_detail.html:266
+#: order/templates/order/receive_parts.html:25 stock/forms.py:136
+#: stock/forms.py:342
msgid "Destination"
msgstr "Hedef"
@@ -1196,7 +1231,7 @@ msgstr "Hedef konumu belirtilmedi"
#: build/templates/build/detail.html:70
#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638
-#: templates/js/stock.js:1406 templates/js/table_filters.js:112
+#: templates/js/stock.js:1420 templates/js/table_filters.js:112
#: templates/js/table_filters.js:206
msgid "Batch"
msgstr "Toplu"
@@ -1251,7 +1286,7 @@ msgstr "Yapım İşi Emri Detayları"
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
-#: templates/js/stock.js:1044
+#: templates/js/stock.js:1058
msgid "Details"
msgstr "Detaylar"
@@ -1287,7 +1322,6 @@ msgstr "Notları Düzenle"
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487
-#: stock/templates/stock/item_base.html:497
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr "Kaydet"
@@ -1316,7 +1350,7 @@ msgstr "Yapım İşi Çıktısı Oluştur"
msgid "Maximum output quantity is "
msgstr "Maksimum çıktı miktarı "
-#: build/views.py:184 stock/views.py:1821
+#: build/views.py:184 stock/views.py:1653
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
@@ -1332,7 +1366,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:281 build/views.py:371 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:346
msgid "Check the confirmation box"
msgstr "Onay kutusunu işaretleyin"
@@ -1429,31 +1463,6 @@ msgstr "Stok Tahsisini Düzenle"
msgid "Updated Build Item"
msgstr "Yapım İşi Ögesini Güncelle"
-#: build/views.py:1070
-msgid "Add Build Order Attachment"
-msgstr ""
-
-#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
-#: stock/views.py:277
-msgid "Added attachment"
-msgstr "Ek eklendi"
-
-#: build/views.py:1119 order/views.py:196 order/views.py:217
-msgid "Edit Attachment"
-msgstr "Ek Düzenle"
-
-#: build/views.py:1129 order/views.py:200 order/views.py:221
-msgid "Attachment updated"
-msgstr "Ek güncellendi"
-
-#: build/views.py:1139 order/views.py:236 order/views.py:250
-msgid "Delete Attachment"
-msgstr "Eki Sil"
-
-#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
-msgid "Deleted attachment"
-msgstr "Eki sil"
-
#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr "Desteklenmeyen dosya formatı: {ext.upper()}"
@@ -1470,7 +1479,7 @@ msgstr "Dosya okurken hata (hatalı ölçüler)"
msgid "Error reading file (data could be corrupted)"
msgstr "Dosya okurken hata (veri bozulmuş olabilir)"
-#: common/forms.py:34 templates/attachment_table.html:15
+#: common/forms.py:34 templates/js/attachment.js:42
msgid "File"
msgstr "Dosya"
@@ -1503,7 +1512,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:72 company/models.py:94 company/models.py:95
+#: common/models.py:72 company/models.py:99 company/models.py:100
msgid "Company name"
msgstr ""
@@ -1607,9 +1616,9 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
-#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
-#: templates/js/table_filters.js:315
+#: common/models.py:160 part/models.py:2226 part/templates/part/detail.html:160
+#: report/models.py:186 stock/forms.py:226 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:320
msgid "Template"
msgstr "Şablon"
@@ -1617,8 +1626,8 @@ msgstr "Şablon"
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
+#: common/models.py:167 part/models.py:828 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:128 templates/js/table_filters.js:332
msgid "Assembly"
msgstr "Montaj"
@@ -1626,8 +1635,8 @@ msgstr "Montaj"
msgid "Parts can be assembled from other components by default"
msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir"
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:331
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:336
msgid "Component"
msgstr "Bileşen"
@@ -1635,7 +1644,7 @@ msgstr "Bileşen"
msgid "Parts can be used as sub-components by default"
msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir"
-#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:845 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr "Satın Alınabilir"
@@ -1643,8 +1652,8 @@ msgstr "Satın Alınabilir"
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:339
+#: common/models.py:188 part/models.py:850 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:344
msgid "Salable"
msgstr "Satılabilir"
@@ -1652,8 +1661,8 @@ msgstr "Satılabilir"
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
+#: common/models.py:195 part/models.py:840 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:348
msgid "Trackable"
msgstr "Takip Edilebilir"
@@ -1661,7 +1670,7 @@ msgstr "Takip Edilebilir"
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:860 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr "Sanal"
@@ -1858,13 +1867,12 @@ msgstr ""
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:742 company/forms.py:190
+#: common/models.py:742 company/forms.py:125
msgid "Price break quantity"
msgstr ""
-#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
-#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
+#: templates/js/part.js:832
msgid "Price"
msgstr ""
@@ -1894,16 +1902,16 @@ msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:605
+#: order/templates/order/po_navbar.html:22 order/views.py:337
#: part/templates/part/bom_upload/upload_file.html:27
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:621
msgid "Upload File"
msgstr "Dosya Yükle"
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:338 part/templates/part/bom_upload/select_fields.html:58
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr ""
@@ -1928,269 +1936,277 @@ msgstr ""
msgid "Previous Step"
msgstr ""
-#: company/forms.py:37 company/models.py:142
-#: company/templates/company/detail.html:42
-msgid "Currency"
-msgstr ""
-
-#: company/forms.py:38 company/models.py:144
-msgid "Default currency used for this company"
-msgstr ""
-
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:26 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:27 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:132 templates/js/part.js:787
+#: company/forms.py:67 templates/js/part.js:940
msgid "Single Price"
msgstr ""
-#: company/forms.py:133
+#: company/forms.py:68
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:141 company/models.py:321
+#: company/forms.py:76 company/models.py:335
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:147 company/models.py:328
+#: company/forms.py:82 company/models.py:342
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:149 company/models.py:327
+#: company/forms.py:84 company/models.py:341
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:162 part/bom.py:171
-#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408
+#: order/templates/order/purchase_order_detail.html:189 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:305 templates/js/company.js:533
msgid "MPN"
msgstr ""
-#: company/models.py:99
+#: company/models.py:104
msgid "Company description"
msgstr ""
-#: company/models.py:100
+#: company/models.py:105
msgid "Description of the company"
msgstr ""
-#: company/models.py:104 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:33 templates/js/company.js:60
+#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:129
msgid "Website"
msgstr ""
-#: company/models.py:104
+#: company/models.py:112
msgid "Company website URL"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:77
+#: company/models.py:116 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:108
+#: company/models.py:117
msgid "Company address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:120
msgid "Phone number"
msgstr ""
-#: company/models.py:112
+#: company/models.py:121
msgid "Contact phone number"
msgstr ""
-#: company/models.py:115 company/templates/company/company_base.html:91
+#: company/models.py:124 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:115
+#: company/models.py:124
msgid "Contact email address"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:98
+#: company/models.py:127 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:119
+#: company/models.py:128
msgid "Point of contact"
msgstr ""
-#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:102 part/models.py:728
+#: company/models.py:130 company/models.py:347 company/models.py:548
+#: order/models.py:156 part/models.py:737
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/company.js:188 templates/js/company.js:419
+#: templates/js/company.js:312 templates/js/company.js:544
#: templates/js/part.js:498
msgid "Link"
msgstr ""
-#: company/models.py:121
+#: company/models.py:130
msgid "Link to external company information"
msgstr ""
-#: company/models.py:129 part/models.py:738
+#: company/models.py:138 part/models.py:747
msgid "Image"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "is customer"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "is supplier"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "is manufacturer"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:403
+#: company/models.py:151 company/serializers.py:259
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:154
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:319 company/models.py:519 stock/models.py:411
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1603
+#: company/models.py:323 company/models.py:523 order/views.py:1127
msgid "Select part"
msgstr ""
-#: company/models.py:320 company/templates/company/detail.html:57
+#: company/models.py:334 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
#: part/bom.py:241 stock/templates/stock/item_base.html:352
-#: templates/js/company.js:44 templates/js/company.js:165
-#: templates/js/company.js:390
+#: templates/js/company.js:113 templates/js/company.js:289
+#: templates/js/company.js:515
msgid "Manufacturer"
msgstr ""
-#: company/models.py:334
+#: company/models.py:348
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:340
+#: company/models.py:354
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:390 company/models.py:520
+#: company/models.py:408 company/models.py:542
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:362
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:397
+#: company/models.py:415
msgid "Parameter name"
msgstr ""
-#: company/models.py:403 part/templates/part/params.html:28
+#: company/models.py:421 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
-#: templates/js/company.js:241 templates/js/stock.js:137
+#: stock/models.py:1771 templates/InvenTree/settings/header.html:8
+#: templates/js/company.js:365 templates/js/stock.js:137
msgid "Value"
msgstr ""
-#: company/models.py:404
+#: company/models.py:422
msgid "Parameter value"
msgstr ""
-#: company/models.py:410 part/models.py:813 part/models.py:2165
+#: company/models.py:428 part/models.py:822 part/models.py:2194
#: part/templates/part/detail.html:106 part/templates/part/params.html:29
-#: templates/js/company.js:247
+#: templates/js/company.js:371
msgid "Units"
msgstr ""
-#: company/models.py:411
+#: company/models.py:429
msgid "Parameter units"
msgstr ""
-#: company/models.py:507 company/templates/company/detail.html:62
+#: company/models.py:529 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:256
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
-#: templates/js/company.js:48 templates/js/company.js:364
-#: templates/js/order.js:170
+#: templates/js/company.js:117 templates/js/company.js:489
+#: templates/js/order.js:232
msgid "Supplier"
msgstr ""
-#: company/models.py:508
+#: company/models.py:530
msgid "Select supplier"
msgstr ""
-#: company/models.py:513 company/templates/company/supplier_part_base.html:88
+#: company/models.py:535 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:153 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:180 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:514
+#: company/models.py:536
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:521
+#: company/models.py:543
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:527
+#: company/models.py:549
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:533
+#: company/models.py:555
msgid "Supplier part description"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part_base.html:116
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305
+#: company/models.py:560 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2342
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "base cost"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:427 stock/templates/stock/item_base.html:310
-#: templates/js/stock.js:695
+#: company/models.py:566 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:435 stock/templates/stock/item_base.html:310
+#: templates/js/stock.js:709
msgid "Packaging"
msgstr ""
-#: company/models.py:544
+#: company/models.py:566
msgid "Part packaging"
msgstr ""
-#: company/models.py:546 part/models.py:1608
+#: company/models.py:568 part/models.py:1617
msgid "multiple"
msgstr ""
-#: company/models.py:546
+#: company/models.py:568
msgid "Order multiple"
msgstr ""
+#: company/serializers.py:68
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:69
+msgid "Currency Code"
+msgstr ""
+
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
#: company/templates/company/navbar.html:65 templates/js/build.js:563
@@ -2199,7 +2215,7 @@ msgstr "Atanan Stok"
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:102
msgid "Company"
msgstr ""
@@ -2213,7 +2229,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:313
+#: company/templates/company/company_base.html:46 templates/js/order.js:61
msgid "Create Purchase Order"
msgstr "Satın Alma Emri Oluştur"
@@ -2221,7 +2237,8 @@ msgstr "Satın Alma Emri Oluştur"
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56 company/views.py:326
+#: company/templates/company/company_base.html:56
+#: company/templates/company/company_base.html:126
msgid "Delete Company"
msgstr ""
@@ -2235,15 +2252,9 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/delete.html:7
-#, python-format
-msgid "Are you sure you want to delete company '%(name)s'?"
-msgstr ""
-
-#: company/templates/company/delete.html:12
-#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be deleted."
+#: company/templates/company/company_base.html:166
+#: part/templates/part/part_base.html:307
+msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:21
@@ -2258,11 +2269,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:460
-#: order/templates/order/sales_order_base.html:94 stock/models.py:445
-#: stock/models.py:446 stock/templates/stock/item_base.html:262
-#: templates/js/company.js:40 templates/js/order.js:267
-#: templates/js/stock.js:1097
+#: company/templates/company/detail.html:67 order/models.py:540
+#: order/templates/order/sales_order_base.html:94 stock/models.py:453
+#: stock/models.py:454 stock/templates/stock/item_base.html:262
+#: templates/js/company.js:109 templates/js/order.js:329
+#: templates/js/stock.js:1111
msgid "Customer"
msgstr "Müşteri"
@@ -2283,6 +2294,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
+#: company/templates/company/manufacturer_part_suppliers.html:46
#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
@@ -2305,26 +2317,25 @@ msgstr "Parçaları sil"
msgid "Delete Parts"
msgstr "Parçaları Sil"
-#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:68
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:127
-#: templates/js/stock.js:1312
+#: templates/js/stock.js:1326
msgid "New Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:69
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:72
-#: company/views.py:71 part/templates/part/manufacturer.html:52
-#: part/templates/part/supplier.html:56
+#: company/templates/company/detail_manufacturer_part.html:74
+#: company/views.py:66 part/templates/part/manufacturer.html:52
+#: part/templates/part/supplier.html:55
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:73
-#: company/views.py:284
+#: company/templates/company/detail_manufacturer_part.html:75
msgid "Create new Manufacturer"
msgstr ""
@@ -2335,7 +2346,7 @@ msgstr "Tedarikçi Stoku"
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:123 part/templates/part/category.html:137
-#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
+#: part/templates/part/stock.html:55 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2347,26 +2358,24 @@ msgstr "Tedarikçi Parçaları"
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:44
-#: order/templates/order/purchase_order_detail.html:50
+#: part/templates/part/part_base.html:429
msgid "Create new supplier part"
msgstr "Yeni tedarikçi parçası oluştur"
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1318
+#: part/templates/part/part_base.html:428 part/templates/part/supplier.html:17
+#: templates/js/stock.js:1332
msgid "New Supplier Part"
msgstr "Yeni Tedarikçi Parçası"
#: company/templates/company/detail_supplier_part.html:72
-#: company/templates/company/manufacturer_part_suppliers.html:82
-#: company/views.py:64 order/templates/order/purchase_orders.html:185
-#: part/templates/part/supplier.html:50
+#: company/templates/company/manufacturer_part_suppliers.html:96
+#: company/views.py:60 part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
-#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:186
+#: company/templates/company/detail_supplier_part.html:73
msgid "Create new Supplier"
msgstr ""
@@ -2401,20 +2410,19 @@ msgstr ""
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:6
-msgid "Are you sure you want to delete the following Manufacturer Parts?"
+#: company/templates/company/manufacturer_part_base.html:125
+msgid "Edit Manufacturer Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:36
-#, python-format
-msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
-msgstr "Bu üretici parçası için tanımlanmış %(count)s tedarikçi bulunmaktadır. Bunu silerseniz, aşağıdaki tedarikçi parçaları da silinecektir:"
+#: company/templates/company/manufacturer_part_base.html:134
+msgid "Delete Manufacturer Part"
+msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:87
-#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
-#: templates/navbar.html:35
+#: company/views.py:59 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 part/templates/part/prices.html:153
+#: templates/InvenTree/search.html:316 templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2425,7 +2433,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:39 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:53
#: 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:128 templates/InvenTree/search.html:196
@@ -2451,9 +2459,11 @@ msgid "Delete supplier parts"
msgstr "Tedarikçi parçalarını sil"
#: company/templates/company/manufacturer_part_suppliers.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: company/templates/company/manufacturer_part_suppliers.html:142
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:191
+#: stock/views.py:855 templates/js/company.js:203 users/models.py:192
msgid "Delete"
msgstr ""
@@ -2471,11 +2481,27 @@ msgstr ""
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part_suppliers.html:83
+#: company/templates/company/manufacturer_part_suppliers.html:48
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:80
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:97
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
msgstr ""
+#: company/templates/company/manufacturer_part_suppliers.html:127
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:139
+msgid "Delete Parameters"
+msgstr ""
+
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
msgid "Manufactured Parts"
@@ -2492,8 +2518,8 @@ msgstr ""
#: stock/templates/stock/location.html:136
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
-#: templates/InvenTree/search.html:198 templates/js/stock.js:996
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Stok Kalemleri"
@@ -2503,11 +2529,11 @@ msgstr "Stok Kalemleri"
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: part/templates/part/navbar.html:101 part/templates/part/navbar.html:104
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:236
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
-#: users/models.py:45
+#: users/models.py:46
msgid "Sales Orders"
msgstr "Satış Emirleri"
@@ -2516,10 +2542,10 @@ msgstr "Satış Emirleri"
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:213
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
-#: users/models.py:44
+#: users/models.py:45
msgid "Purchase Orders"
msgstr "Satın Alma Emirleri"
@@ -2548,8 +2574,9 @@ msgid "New Sales Order"
msgstr "Yeni Satış Emri"
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
-#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:420
+#: stock/templates/stock/item_base.html:374 templates/js/company.js:505
+#: templates/js/stock.js:690
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
@@ -2594,459 +2621,401 @@ msgid "Order Part"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:11
+#: part/templates/part/navbar.html:74
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2918
+#: company/templates/company/supplier_part_pricing.html:19
+#: company/templates/company/supplier_part_pricing.html:118
+#: part/templates/part/prices.html:264 part/views.py:2788
msgid "Add Price Break"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:38
-#: part/templates/part/sale_prices.html:46
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:89
-#: part/templates/part/sale_prices.html:97
+#: company/templates/company/supplier_part_pricing.html:52 part/views.py:2850
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:66 part/views.py:2836
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:91
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:90
-#: part/templates/part/sale_prices.html:98
+#: company/templates/company/supplier_part_pricing.html:92
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:81
-#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
-#: templates/navbar.html:36
+#: company/views.py:65 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 part/templates/part/prices.html:157
+#: templates/InvenTree/search.html:306 templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
-#: company/views.py:77 templates/InvenTree/search.html:336
+#: company/views.py:71 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:187
+#: company/views.py:72
msgid "New Customer"
msgstr ""
-#: company/views.py:86
+#: company/views.py:79
msgid "Companies"
msgstr ""
-#: company/views.py:87
+#: company/views.py:80
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:1115
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:1147
+#: company/views.py:190 part/views.py:1039
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:1154
+#: company/views.py:197 part/views.py:1046
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:1163
+#: company/views.py:206 part/views.py:1055
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir resim dosyası değil"
-#: company/views.py:243
-msgid "Update Company Image"
-msgstr ""
-
-#: company/views.py:249
-msgid "Updated company image"
-msgstr ""
-
-#: company/views.py:259
-msgid "Edit Company"
-msgstr ""
-
-#: company/views.py:264
-msgid "Edited company information"
-msgstr ""
-
-#: company/views.py:287 order/templates/order/sales_orders.html:188
-msgid "Create new Customer"
-msgstr ""
-
-#: company/views.py:289
-msgid "Create new Company"
-msgstr ""
-
-#: company/views.py:316
-msgid "Created new company"
-msgstr ""
-
-#: company/views.py:332
-msgid "Company was deleted"
-msgstr ""
-
-#: company/views.py:357
-msgid "Edit Manufacturer Part"
-msgstr ""
-
-#: company/views.py:366
+#: company/views.py:251
msgid "Create New Manufacturer Part"
msgstr ""
-#: company/views.py:440
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: company/views.py:514
-msgid "Add Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:548
-msgid "Edit Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:588
+#: company/views.py:334
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:639 templates/js/stock.js:1319
+#: company/views.py:385 templates/js/stock.js:1333
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:783
+#: company/views.py:529
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2922
-msgid "Added new price break"
-msgstr ""
-
-#: company/views.py:916 part/views.py:2966
-msgid "Edit Price Break"
-msgstr ""
-
-#: company/views.py:931 part/views.py:2980
-msgid "Delete Price Break"
-msgstr ""
-
#: label/api.py:56 report/api.py:201
msgid "No valid objects provided to template"
msgstr "Şablon için geçerli bir nesne sağlanmadı"
-#: label/models.py:103
+#: label/models.py:104
msgid "Label name"
msgstr "Etiket adı"
-#: label/models.py:110
+#: label/models.py:111
msgid "Label description"
msgstr "Etiket tanımı"
-#: label/models.py:117 stock/forms.py:202
+#: label/models.py:118 stock/forms.py:169
msgid "Label"
msgstr "Etiket"
-#: label/models.py:118
+#: label/models.py:119
msgid "Label template file"
msgstr "Etiket şablon listesi"
-#: label/models.py:124 report/models.py:297
+#: label/models.py:125 report/models.py:297
msgid "Enabled"
msgstr ""
-#: label/models.py:125
+#: label/models.py:126
msgid "Label template is enabled"
msgstr "Etiket sablonu etkinleştirildi"
-#: label/models.py:130
+#: label/models.py:131
msgid "Width [mm]"
msgstr ""
-#: label/models.py:131
+#: label/models.py:132
msgid "Label width, specified in mm"
msgstr "Etiket genişliği mm olarak belirtilmeli"
-#: label/models.py:137
+#: label/models.py:138
msgid "Height [mm]"
msgstr ""
-#: label/models.py:138
+#: label/models.py:139
msgid "Label height, specified in mm"
msgstr "Etiket yüksekliği mm olarak belirtilmeli"
-#: label/models.py:144 report/models.py:290
+#: label/models.py:145 report/models.py:290
msgid "Filename Pattern"
msgstr "Dosya Adı Deseni"
-#: label/models.py:145
+#: label/models.py:146
msgid "Pattern for generating label filenames"
msgstr "Etiket dosya adları oluşturma için desen"
-#: label/models.py:244 label/models.py:297
+#: label/models.py:249 label/models.py:306
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:245 label/models.py:298 report/models.py:317
+#: label/models.py:250 label/models.py:307 report/models.py:317
#: report/models.py:440 report/models.py:474
msgid "Filters"
msgstr ""
-#: order/forms.py:31 order/templates/order/order_base.html:47
+#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:42 order/templates/order/order_base.html:54
+#: order/forms.py:41 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
+#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:75 order/templates/order/sales_order_base.html:58
+#: order/forms.py:74 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:90
+#: order/forms.py:89
msgid "Receive parts to this location"
msgstr "Parçaları bu konuma alın"
-#: order/forms.py:112
-msgid "Purchase Order reference"
-msgstr ""
-
-#: order/forms.py:119
-msgid "Target date for order delivery. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:147
-msgid "Enter sales order number"
-msgstr ""
-
-#: order/forms.py:154 order/models.py:472
-msgid "Target date for order completion. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:246
+#: order/forms.py:116
msgid "Enter stock item serial numbers"
msgstr "Stok kalemi seri numaları girin"
-#: order/forms.py:252
+#: order/forms.py:122
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:98
-msgid "Order reference"
-msgstr ""
-
-#: order/models.py:100
+#: order/models.py:154
msgid "Order description"
msgstr ""
-#: order/models.py:102
+#: order/models.py:156
msgid "Link to external page"
msgstr ""
-#: order/models.py:110 part/templates/part/detail.html:132
+#: order/models.py:164 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:117
+#: order/models.py:171
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:176
msgid "Order notes"
msgstr ""
-#: order/models.py:181 order/models.py:465
+#: order/models.py:243 order/models.py:530
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:248 order/models.py:545
msgid "Purchase order status"
msgstr ""
-#: order/models.py:190
+#: order/models.py:257
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:193 order/templates/order/order_base.html:98
-#: templates/js/order.js:179
+#: order/models.py:260 order/templates/order/order_base.html:98
+#: templates/js/order.js:241
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:193
+#: order/models.py:260
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:200
+#: order/models.py:267
msgid "received by"
msgstr ""
-#: order/models.py:205
+#: order/models.py:272
msgid "Issue Date"
msgstr ""
-#: order/models.py:206
+#: order/models.py:273
msgid "Date order was issued"
msgstr ""
-#: order/models.py:211
+#: order/models.py:278
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:212
+#: order/models.py:279
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:218
+#: order/models.py:285
msgid "Date order was completed"
msgstr ""
-#: order/models.py:242 part/views.py:1853 stock/models.py:300
-#: stock/models.py:1015
+#: order/models.py:309 part/views.py:1730 stock/models.py:308
+#: stock/models.py:1023
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:247
+#: order/models.py:314
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:345
+#: order/models.py:412
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:349
+#: order/models.py:416
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:351
+#: order/models.py:418
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:461
+#: order/models.py:541
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer Reference "
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:475 templates/js/order.js:303
+#: order/models.py:552
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:555 templates/js/order.js:370
msgid "Shipment Date"
msgstr ""
-#: order/models.py:482
+#: order/models.py:562
msgid "shipped by"
msgstr ""
-#: order/models.py:526
+#: order/models.py:606
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:613
+#: order/models.py:703
msgid "Item quantity"
msgstr ""
-#: order/models.py:615
+#: order/models.py:709
msgid "Line item reference"
msgstr ""
-#: order/models.py:617
+#: order/models.py:711
msgid "Line item notes"
msgstr ""
-#: order/models.py:643 order/models.py:710 templates/js/order.js:353
+#: order/models.py:741 order/models.py:812 templates/js/order.js:420
msgid "Order"
msgstr ""
-#: order/models.py:644 order/templates/order/order_base.html:9
+#: order/models.py:742 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
-#: templates/js/stock.js:669 templates/js/stock.js:1078
+#: stock/templates/stock/item_base.html:324 templates/js/order.js:210
+#: templates/js/stock.js:669 templates/js/stock.js:1092
msgid "Purchase Order"
msgstr ""
-#: order/models.py:658
+#: order/models.py:756
msgid "Supplier part"
msgstr ""
-#: order/models.py:661 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:219
+#: order/models.py:759 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:246
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:661
+#: order/models.py:759
msgid "Number of items received"
msgstr ""
-#: order/models.py:667 stock/models.py:537
-#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
+#: order/models.py:765 part/templates/part/prices.html:166 stock/models.py:545
+#: stock/templates/stock/item_base.html:331 templates/js/stock.js:704
msgid "Purchase Price"
msgstr ""
-#: order/models.py:668
+#: order/models.py:766
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:676
+#: order/models.py:774
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:718 part/templates/part/navbar.html:110
-#: part/templates/part/order_prices.html:108
-#: part/templates/part/part_pricing.html:97
+#: order/models.py:820 part/templates/part/part_pricing.html:97
+#: part/templates/part/prices.html:103 part/templates/part/prices.html:278
msgid "Sale Price"
msgstr ""
-#: order/models.py:719
+#: order/models.py:821
msgid "Unit sale price"
msgstr ""
-#: order/models.py:794 order/models.py:796
+#: order/models.py:900 order/models.py:902
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:800
+#: order/models.py:906
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:802
+#: order/models.py:908
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:805
+#: order/models.py:911
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:815
+#: order/models.py:921
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
-#: order/models.py:820
+#: order/models.py:926
msgid "Line"
msgstr ""
-#: order/models.py:831
+#: order/models.py:937
msgid "Item"
msgstr ""
-#: order/models.py:832
+#: order/models.py:938
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:835
+#: order/models.py:941
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
+#: order/serializers.py:139
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Sale price currency"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
#: templates/attachment_delete.html:5
@@ -3091,16 +3060,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:180
-#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/order_base.html:188
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:199
+#: order/templates/order/purchase_order_detail.html:127
#: part/templates/part/category.html:217 part/templates/part/category.html:259
-#: stock/templates/stock/location.html:191 templates/js/stock.js:736
-#: templates/js/stock.js:1324
+#: part/templates/part/part_base.html:415
+#: stock/templates/stock/location.html:191 templates/js/stock.js:750
+#: templates/js/stock.js:1338
msgid "New Location"
msgstr "Yeni Konum"
-#: order/templates/order/order_base.html:181
-#: order/templates/order/purchase_order_detail.html:101
+#: order/templates/order/order_base.html:200
+#: order/templates/order/purchase_order_detail.html:128
+#: part/templates/part/part_base.html:416
#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr "Yeni stok konumu oluştur"
@@ -3253,7 +3228,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.js:205 templates/js/order.js:308
+#: templates/js/order.js:267 templates/js/order.js:375
msgid "Items"
msgstr ""
@@ -3277,7 +3252,6 @@ msgid "Purchase Order Attachments"
msgstr ""
#: order/templates/order/po_lineitem_delete.html:5
-#: order/templates/order/so_lineitem_delete.html:5
msgid "Are you sure you wish to delete this line item?"
msgstr ""
@@ -3295,40 +3269,52 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
-#: order/views.py:1410
+#: order/templates/order/purchase_order_detail.html:64
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:56
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:114
+#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/sales_order_detail.html:398
+msgid "Edit Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:110
+#: order/templates/order/sales_order_detail.html:408
+msgid "Delete Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:141
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/purchase_order_detail.html:169
+#: order/templates/order/sales_order_detail.html:233
msgid "Total"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:191
-#: order/templates/order/sales_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:218
+#: order/templates/order/sales_order_detail.html:256 templates/js/part.js:807
+#: templates/js/part.js:996
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:198
-#: order/templates/order/sales_order_detail.html:253
+#: order/templates/order/purchase_order_detail.html:225
+#: order/templates/order/sales_order_detail.html:263
msgid "Total price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:255
-#: order/templates/order/sales_order_detail.html:359
+#: order/templates/order/purchase_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:369
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:256
+#: order/templates/order/purchase_order_detail.html:283
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:261
+#: order/templates/order/purchase_order_detail.html:288
msgid "Receive line item"
msgstr ""
@@ -3343,7 +3329,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
-#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/models.py:326 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:157
#: part/templates/part/category_navbar.html:25
#: part/templates/part/category_navbar.html:32
@@ -3351,7 +3337,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:40
+#: users/models.py:41
msgid "Parts"
msgstr "Parçalar"
@@ -3393,10 +3379,14 @@ msgstr ""
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100 templates/js/order.js:275
+#: order/templates/order/sales_order_base.html:100 templates/js/order.js:342
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_base.html:177
+msgid "Edit Sales Order"
+msgstr ""
+
#: order/templates/order/sales_order_cancel.html:8
#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
@@ -3412,69 +3402,69 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: order/templates/order/sales_order_detail.html:105 templates/js/bom.js:358
#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr "İşlemler"
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: order/templates/order/sales_order_detail.html:112 templates/js/build.js:611
#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr "Stok tahsisini düzenle"
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: order/templates/order/sales_order_detail.html:113 templates/js/build.js:613
#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr "Stok tahsisini sil"
-#: order/templates/order/sales_order_detail.html:176
+#: order/templates/order/sales_order_detail.html:186
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:216
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: order/templates/order/sales_order_detail.html:284 templates/js/build.js:676
#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:276
+#: order/templates/order/sales_order_detail.html:286
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:313
+#: order/templates/order/sales_order_detail.html:323
msgid "PO"
msgstr ""
-#: order/templates/order/sales_order_detail.html:343
+#: order/templates/order/sales_order_detail.html:353
msgid "Allocate serial numbers"
msgstr "Seri numaralarını tahsis et"
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
+#: order/templates/order/sales_order_detail.html:356 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:349
+#: order/templates/order/sales_order_detail.html:359
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: order/templates/order/sales_order_detail.html:363 templates/js/build.js:732
#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:356
-#: order/templates/order/sales_order_detail.html:465
+#: order/templates/order/sales_order_detail.html:366
+#: order/templates/order/sales_order_detail.html:485
msgid "Calculate price"
msgstr ""
-#: order/templates/order/sales_order_detail.html:360
+#: order/templates/order/sales_order_detail.html:370
msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:471
+#: order/templates/order/sales_order_detail.html:491
msgid "Update Unit Price"
msgstr ""
@@ -3515,194 +3505,154 @@ msgstr "Bu işlem Sipariş Emrinden belirtilen stok kalemleri tahsis edemedi"
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:106
-msgid "Add Purchase Order Attachment"
-msgstr ""
-
-#: order/views.py:156
-msgid "Add Sales Order Attachment"
-msgstr ""
-
-#: order/views.py:348
-msgid "Create Sales Order"
-msgstr ""
-
-#: order/views.py:383
-msgid "Edit Purchase Order"
-msgstr ""
-
-#: order/views.py:403
-msgid "Edit Sales Order"
-msgstr ""
-
-#: order/views.py:419
+#: order/views.py:151
msgid "Cancel Order"
msgstr ""
-#: order/views.py:428 order/views.py:454
+#: order/views.py:160 order/views.py:186
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:431 order/views.py:457
+#: order/views.py:163 order/views.py:189
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:445
+#: order/views.py:177
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:471
+#: order/views.py:203
msgid "Issue Order"
msgstr ""
-#: order/views.py:480
+#: order/views.py:212
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:490
+#: order/views.py:222
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:501
+#: order/views.py:233
msgid "Complete Order"
msgstr ""
-#: order/views.py:517
+#: order/views.py:249
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:528
+#: order/views.py:260
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:538
+#: order/views.py:270
msgid "Ship Order"
msgstr ""
-#: order/views.py:554
+#: order/views.py:286
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:560
+#: order/views.py:292
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:339
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:804
+#: order/views.py:536
msgid "Receive Parts"
msgstr ""
-#: order/views.py:874
+#: order/views.py:606
msgid "Items received"
msgstr ""
-#: order/views.py:888
+#: order/views.py:620
msgid "No destination set"
msgstr ""
-#: order/views.py:933
+#: order/views.py:665
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:939
+#: order/views.py:671
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:945
+#: order/views.py:677
msgid "No lines specified"
msgstr ""
-#: order/views.py:1018
+#: order/views.py:750
msgid "Update prices"
msgstr ""
-#: order/views.py:1276
+#: order/views.py:1008
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1336
-msgid "Supplier part must be specified"
-msgstr ""
-
-#: order/views.py:1342
-msgid "Supplier must match for Part and Order"
-msgstr ""
-
-#: order/views.py:1473 order/views.py:1491
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/views.py:1507 order/views.py:1519
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/views.py:1512 order/views.py:1524
-msgid "Deleted line item"
-msgstr ""
-
-#: order/views.py:1537
+#: order/views.py:1061
msgid "Allocate Serial Numbers"
msgstr "Seri Numaralarını Tahsis Et"
-#: order/views.py:1582
+#: order/views.py:1106
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1598
+#: order/views.py:1122
msgid "Select line item"
msgstr ""
-#: order/views.py:1629
+#: order/views.py:1153
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr "{serial} seri numarası için eşleşen öge bulunamadı"
-#: order/views.py:1639
+#: order/views.py:1163
#, python-brace-format
msgid "{serial} is not in stock"
msgstr "{serial} stokta yok"
-#: order/views.py:1647
+#: order/views.py:1171
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr "{serial} zaten bir emirde tahsis edilmiş"
-#: order/views.py:1701
+#: order/views.py:1225
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1775
+#: order/views.py:1299
msgid "Edit Allocation Quantity"
msgstr "Tahsis Miktarını Düzenle"
-#: order/views.py:1790
+#: order/views.py:1314
msgid "Remove allocation"
msgstr "Tahsisi Sil"
-#: order/views.py:1862
+#: order/views.py:1386
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1868
+#: order/views.py:1392
msgid "Price not found"
msgstr ""
-#: order/views.py:1871
+#: order/views.py:1395
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1876
+#: order/views.py:1400
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:138 part/models.py:72 part/models.py:747
+#: part/bom.py:138 part/models.py:72 part/models.py:756
#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr "Varsayılan Konum"
@@ -3724,143 +3674,143 @@ msgstr "Malzeme listesi okurken hata (geçersiz data)"
msgid "Error reading BOM file (incorrect row size)"
msgstr "Malzeme listesi okurken hata (geçersiz satır boyutu)"
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "File Format"
msgstr "Dosya Biçimi"
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "Select output file format"
msgstr "Çıktı dosyası biçimi seçin"
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Cascading"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Download cascading / multi-level BOM"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Levels"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Select maximum number of BOM levels to export (0 = all levels)"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include Parameter Data"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include part parameters data in exported BOM"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include Stock Data"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include part stock data in exported BOM"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include Manufacturer Data"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include part manufacturer data in exported BOM"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include Supplier Data"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include part supplier data in exported BOM"
msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil edin"
-#: part/forms.py:122 part/models.py:2191
+#: part/forms.py:106 part/models.py:2224
msgid "Parent Part"
msgstr ""
-#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:107 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr ""
-#: part/forms.py:129
+#: part/forms.py:113
msgid "Clear existing BOM items"
msgstr ""
-#: part/forms.py:135
+#: part/forms.py:119
msgid "Confirm BOM duplication"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "validate"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "BOM file"
msgstr "Malzeme Listesi Dosyası"
-#: part/forms.py:165
+#: part/forms.py:149
msgid "Select BOM file to upload"
msgstr "Yüklemek için Malzeme Listesi dosyası seçin"
-#: part/forms.py:184
+#: part/forms.py:168
msgid "Related Part"
msgstr ""
-#: part/forms.py:203
+#: part/forms.py:175
msgid "Select part category"
msgstr ""
-#: part/forms.py:220
+#: part/forms.py:192
msgid "Duplicate all BOM data for this part"
msgstr ""
-#: part/forms.py:221
+#: part/forms.py:193
msgid "Copy BOM"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:198
msgid "Duplicate all parameter data for this part"
msgstr ""
-#: part/forms.py:227
+#: part/forms.py:199
msgid "Copy Parameters"
msgstr ""
-#: part/forms.py:232
+#: part/forms.py:204
msgid "Confirm part creation"
msgstr ""
-#: part/forms.py:237
+#: part/forms.py:209
msgid "Include category parameter templates"
msgstr "Kategori parametre şablonlarını dahil et"
-#: part/forms.py:242
+#: part/forms.py:214
msgid "Include parent categories parameter templates"
msgstr "Üst kategorilerin parametre şablonlarını dahil et"
-#: part/forms.py:322
+#: part/forms.py:294
msgid "Add parameter template to same level categories"
msgstr "Parametre şablonunu aynı seviyedeki kategorilere ekle"
-#: part/forms.py:326
+#: part/forms.py:298
msgid "Add parameter template to all categories"
msgstr "Parametre şablonunu tüm kategorilere ekle"
-#: part/forms.py:344 part/models.py:2286
+#: part/forms.py:316 part/models.py:2323
msgid "Sub part"
msgstr ""
-#: part/forms.py:373
+#: part/forms.py:345
msgid "Input quantity for price calculation"
msgstr ""
@@ -3876,362 +3826,362 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2237
+#: part/models.py:86 part/models.py:2270
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:32
+#: part/models.py:87 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:39
+#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr "Parça Kategorileri"
-#: part/models.py:448 part/models.py:460
+#: part/models.py:457 part/models.py:469
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:557
+#: part/models.py:566
msgid "Next available serial numbers are"
msgstr "Sonraki kullanılabilir seri numaraları"
-#: part/models.py:561
+#: part/models.py:570
msgid "Next available serial number is"
msgstr "Sonraki müsait seri numarası"
-#: part/models.py:566
+#: part/models.py:575
msgid "Most recent serial number is"
msgstr "En son seri numarası"
-#: part/models.py:645
+#: part/models.py:654
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:670 part/templates/part/detail.html:22
+#: part/models.py:679 part/templates/part/detail.html:22
msgid "Part name"
msgstr ""
-#: part/models.py:677
+#: part/models.py:686
msgid "Is Template"
msgstr "Şablon Mu"
-#: part/models.py:678
+#: part/models.py:687
msgid "Is this part a template part?"
msgstr "Bu parça bir şablon parçası mı?"
-#: part/models.py:689
+#: part/models.py:698
msgid "Is this part a variant of another part?"
msgstr "Bu parça başka bir parçanın çeşidi mi?"
-#: part/models.py:690 part/templates/part/detail.html:60
+#: part/models.py:699 part/templates/part/detail.html:60
msgid "Variant Of"
msgstr "Çeşidi"
-#: part/models.py:696
+#: part/models.py:705
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:82
+#: part/models.py:710 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
-#: part/models.py:702
+#: part/models.py:711
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73
+#: part/models.py:718 part/models.py:2269 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:452
msgid "Category"
msgstr ""
-#: part/models.py:710
+#: part/models.py:719
msgid "Part category"
msgstr ""
-#: part/models.py:715 part/templates/part/detail.html:28
+#: part/models.py:724 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:87 templates/js/part.js:169
#: templates/js/part.js:296
msgid "IPN"
msgstr "DPN"
-#: part/models.py:716
+#: part/models.py:725
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:722
+#: part/models.py:731
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199
+#: part/models.py:732 part/templates/part/detail.html:35 report/models.py:199
#: templates/js/part.js:173
msgid "Revision"
msgstr "Revizyon"
-#: part/models.py:745
+#: part/models.py:754
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:792 part/templates/part/detail.html:97
+#: part/models.py:801 part/templates/part/detail.html:97
msgid "Default Supplier"
msgstr ""
-#: part/models.py:793
+#: part/models.py:802
msgid "Default supplier part"
msgstr "Varsayılan tedarikçi parçası"
-#: part/models.py:800
+#: part/models.py:809
msgid "Default Expiry"
msgstr ""
-#: part/models.py:801
+#: part/models.py:810
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:806 part/templates/part/detail.html:113
+#: part/models.py:815 part/templates/part/detail.html:113
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:807
+#: part/models.py:816
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:814
+#: part/models.py:823
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:820
+#: part/models.py:829
msgid "Can this part be built from other parts?"
msgstr "Bu parça diğer parçalardan yapılabilir mi?"
-#: part/models.py:826
+#: part/models.py:835
msgid "Can this part be used to build other parts?"
msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?"
-#: part/models.py:832
+#: part/models.py:841
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:837
+#: part/models.py:846
msgid "Can this part be purchased from external suppliers?"
msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
-#: part/models.py:842
+#: part/models.py:851
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:846 part/templates/part/detail.html:227
+#: part/models.py:855 part/templates/part/detail.html:227
#: templates/js/table_filters.js:21 templates/js/table_filters.js:65
-#: templates/js/table_filters.js:241 templates/js/table_filters.js:310
+#: templates/js/table_filters.js:246 templates/js/table_filters.js:315
msgid "Active"
msgstr ""
-#: part/models.py:847
+#: part/models.py:856
msgid "Is this part active?"
msgstr ""
-#: part/models.py:852
+#: part/models.py:861
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:857
+#: part/models.py:866
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "BOM checksum"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:863
+#: part/models.py:872
msgid "BOM checked by"
msgstr ""
-#: part/models.py:865
+#: part/models.py:874
msgid "BOM checked date"
msgstr ""
-#: part/models.py:869
+#: part/models.py:878
msgid "Creation User"
msgstr ""
-#: part/models.py:1608
+#: part/models.py:1617
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2063
+#: part/models.py:2088
msgid "Test templates can only be created for trackable parts"
msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir"
-#: part/models.py:2080
+#: part/models.py:2105
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117
+#: part/models.py:2125 templates/js/part.js:717 templates/js/stock.js:117
msgid "Test Name"
msgstr ""
-#: part/models.py:2101
+#: part/models.py:2126
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2106
+#: part/models.py:2131
msgid "Test Description"
msgstr ""
-#: part/models.py:2107
+#: part/models.py:2132
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2112 templates/js/part.js:726
-#: templates/js/table_filters.js:227
+#: part/models.py:2137 templates/js/part.js:726
+#: templates/js/table_filters.js:232
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:2113
+#: part/models.py:2138
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2118 templates/js/part.js:734
+#: part/models.py:2143 templates/js/part.js:734
msgid "Requires Value"
msgstr ""
-#: part/models.py:2119
+#: part/models.py:2144
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2124 templates/js/part.js:741
+#: part/models.py:2149 templates/js/part.js:741
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2150
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2187
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:2163
+#: part/models.py:2192
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2165
+#: part/models.py:2194
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2193 part/models.py:2242 part/models.py:2243
+#: part/models.py:2226 part/models.py:2275 part/models.py:2276
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Data"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2247 templates/InvenTree/settings/category.html:67
+#: part/models.py:2280 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2281
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2278
+#: part/models.py:2315
msgid "Select parent part"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2324
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2293
+#: part/models.py:2330
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2332 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2295
+#: part/models.py:2332
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2298
+#: part/models.py:2335
msgid "Overage"
msgstr ""
-#: part/models.py:2299
+#: part/models.py:2336
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2302
+#: part/models.py:2339
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2305
+#: part/models.py:2342
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "Checksum"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2348 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2312
+#: part/models.py:2349
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır"
-#: part/models.py:2317 templates/js/bom.js:287
+#: part/models.py:2354 templates/js/bom.js:287
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:2318
+#: part/models.py:2355
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir"
-#: part/models.py:2394 part/views.py:1859 part/views.py:1911
-#: stock/models.py:290
+#: part/models.py:2431 part/views.py:1736 part/views.py:1788
+#: stock/models.py:298
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2403 part/models.py:2405
+#: part/models.py:2440 part/models.py:2442
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2445
msgid "BOM Item"
msgstr ""
-#: part/models.py:2527
+#: part/models.py:2564
msgid "Part 1"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Part 2"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2563
+#: part/models.py:2600
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4247,14 +4197,6 @@ msgstr ""
msgid "Part Attachments"
msgstr ""
-#: part/templates/part/bom-delete.html:6
-msgid "Are you sure you want to delete this BOM item?"
-msgstr ""
-
-#: part/templates/part/bom-delete.html:8
-msgid "Deleting this entry will remove the BOM row from the following part"
-msgstr ""
-
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
@@ -4303,7 +4245,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:2154
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr ""
@@ -4319,8 +4261,8 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:590
-#: templates/js/stock.js:1313
+#: part/templates/part/bom.html:160 part/views.py:450
+#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr ""
@@ -4401,7 +4343,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:2564
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr ""
@@ -4461,11 +4403,12 @@ msgid "View grid display"
msgstr ""
#: part/templates/part/category.html:218
-#: stock/templates/stock/location.html:192 templates/js/stock.js:737
+#: stock/templates/stock/location.html:192 templates/js/stock.js:751
msgid "Create new location"
msgstr "Yeni konum oluştur"
#: part/templates/part/category.html:223 part/templates/part/category.html:253
+#: part/templates/part/part_base.html:378
msgid "New Category"
msgstr ""
@@ -4477,10 +4420,18 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:260 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1223
msgid "Create new Stock Location"
msgstr "Yeni Stok konumu oluştur"
+#: part/templates/part/category.html:279
+msgid "Select parent category"
+msgstr ""
+
+#: part/templates/part/category.html:286 part/views.py:2389
+msgid "Edit Part Category"
+msgstr ""
+
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4526,7 +4477,7 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:466
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr ""
@@ -4639,36 +4590,6 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:101
-msgid "Internal Price Information"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:19 part/views.py:2989
-msgid "Add Internal Price Break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:28 templates/403.html:5
-#: templates/403.html:11
-msgid "Permission Denied"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:31 templates/403.html:14
-msgid "You do not have permission to view this page."
-msgstr ""
-
-#: part/templates/part/internal_prices.html:59
-msgid "No internal price break information found"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:110
-msgid "Edit internal price break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:111
-msgid "Delete internal price break"
-msgstr ""
-
#: part/templates/part/manufacturer.html:11
msgid "Part Manufacturers"
msgstr ""
@@ -4678,7 +4599,7 @@ msgid "Delete manufacturer parts"
msgstr ""
#: part/templates/part/manufacturer.html:53
-#: part/templates/part/supplier.html:57
+#: part/templates/part/supplier.html:56
msgid "Create new manufacturer"
msgstr ""
@@ -4702,125 +4623,27 @@ msgstr "Tahsisler"
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
-msgid "Order Price Information"
+#: part/templates/part/navbar.html:77
+msgid "Prices"
msgstr ""
-#: part/templates/part/navbar.html:78
-msgid "Order Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
-#: part/templates/part/part_pricing.html:82
-msgid "Internal Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:107
-msgid "Sales Price Information"
-msgstr ""
-
-#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:109 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr "Parça Test Şablonları"
-#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:112 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
+#: part/templates/part/navbar.html:117 part/templates/part/navbar.html:120
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:130 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:25
-#: part/templates/part/part_base.html:282
-msgid "Calculate"
-msgstr ""
-
-#: part/templates/part/order_prices.html:32
-msgid "Pricing ranges"
-msgstr ""
-
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/part_pricing.html:22
-msgid "Supplier Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:38
-#: part/templates/part/order_prices.html:63
-#: part/templates/part/order_prices.html:95
-#: part/templates/part/order_prices.html:109
-#: part/templates/part/part_pricing.html:26
-#: part/templates/part/part_pricing.html:52
-#: part/templates/part/part_pricing.html:85
-#: part/templates/part/part_pricing.html:100
-msgid "Unit Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:45
-#: part/templates/part/order_prices.html:70
-#: part/templates/part/order_prices.html:100
-#: part/templates/part/order_prices.html:114
-#: part/templates/part/part_pricing.html:32
-#: part/templates/part/part_pricing.html:58
-#: part/templates/part/part_pricing.html:89
-#: part/templates/part/part_pricing.html:104
-msgid "Total Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:53
-#: part/templates/part/part_pricing.html:40
-msgid "No supplier pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:129
-#: part/templates/part/part_pricing.html:48
-msgid "BOM Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:78
-#: part/templates/part/part_pricing.html:66
-msgid "Note: BOM pricing is incomplete for this part"
-msgstr ""
-
-#: part/templates/part/order_prices.html:85
-#: part/templates/part/part_pricing.html:73
-msgid "No BOM pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:123
-#: part/templates/part/part_pricing.html:113
-msgid "No pricing information is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:139
-msgid "Stock Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:147
-msgid "No stock pricing history is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:166
-#, python-format
-msgid "Single Price - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:178
-#, python-format
-msgid "Single Price Difference - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:190
-#, python-format
-msgid "Part Single Price - %(currency)s"
-msgstr ""
-
#: part/templates/part/params.html:17
msgid "Add new parameter"
msgstr ""
@@ -4841,8 +4664,8 @@ msgstr "Yeni Parametre Şablonu Oluştur"
msgid "Part List"
msgstr ""
-#: part/templates/part/part_base.html:26 templates/js/company.js:156
-#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161
+#: part/templates/part/part_base.html:26 templates/js/company.js:280
+#: templates/js/company.js:480 templates/js/part.js:84 templates/js/part.js:161
msgid "Inactive"
msgstr ""
@@ -4905,7 +4728,7 @@ msgstr "Bu parça %(link)s parçasının bir çeşididir"
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131
+#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:132
msgid "Required for Build Orders"
msgstr "Yapım İşi Emirleri için Gerekli"
@@ -4926,10 +4749,86 @@ msgstr ""
msgid "Building"
msgstr ""
+#: part/templates/part/part_base.html:285 part/templates/part/prices.html:131
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:379
+msgid "Create New Part Category"
+msgstr ""
+
+#: part/templates/part/part_base.html:387
+msgid "New Parent"
+msgstr ""
+
+#: part/templates/part/part_base.html:435
+msgid "Edit Part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:27
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:31
+#: part/templates/part/prices.html:58 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:107
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:89
+#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:38
+#: part/templates/part/prices.html:65 part/templates/part/prices.html:95
+#: part/templates/part/prices.html:112
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:46
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:55
+#: part/templates/part/prices.html:235
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:73
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:80
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:113
+#: part/templates/part/prices.html:121
+msgid "No pricing information is available for this part."
+msgstr ""
+
#: part/templates/part/part_tests.html:17
msgid "Add Test Template"
msgstr "Test Şablonu Ekle"
+#: part/templates/part/part_tests.html:61
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:79
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:91
+msgid "Delete Test Result Template"
+msgstr ""
+
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr ""
@@ -4964,12 +4863,98 @@ msgstr "Bu parçası için tanımlanmış %(count)s tedarikçi bulunmaktadır. B
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
-#: part/templates/part/related.html:18
-msgid "Add Related"
+#: part/templates/part/prices.html:12
+msgid "General Price Information"
msgstr ""
-#: part/templates/part/sale_prices.html:10
-msgid "Sell Price Information"
+#: part/templates/part/prices.html:22
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:28
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:29
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:56
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:104
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:105
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:127
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:146
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:147 part/templates/part/prices.html:167
+#: part/templates/part/prices.html:193 part/templates/part/prices.html:224
+#: part/templates/part/prices.html:251 part/templates/part/prices.html:279
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:172
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:180
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:192
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:206 part/views.py:2859
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:223
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:250
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:290
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:340
+#, python-format
+msgid "Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:352
+#, python-format
+msgid "Single Price Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:364
+#, python-format
+msgid "Part Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:464
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/related.html:18
+msgid "Add Related"
msgstr ""
#: part/templates/part/sales_orders.html:18
@@ -5043,216 +5028,180 @@ msgstr ""
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:164
-msgid "Add part attachment"
-msgstr ""
-
-#: part/views.py:217 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr ""
-
-#: part/views.py:221
-msgid "Part attachment updated"
-msgstr ""
-
-#: part/views.py:236
-msgid "Delete Part Attachment"
-msgstr ""
-
-#: part/views.py:244
-msgid "Deleted part attachment"
-msgstr ""
-
-#: part/views.py:253
-msgid "Create Test Template"
-msgstr "Test Şablonu Oluştur"
-
-#: part/views.py:280
-msgid "Edit Test Template"
-msgstr "Test Şablonu Düzenle"
-
-#: part/views.py:294
-msgid "Delete Test Template"
-msgstr "Test Şablonu Sil"
-
-#: part/views.py:301
+#: part/views.py:161
msgid "Set Part Category"
msgstr ""
-#: part/views.py:351
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:386
+#: part/views.py:246
msgid "Create Variant"
msgstr "Çeşit Oluştur"
-#: part/views.py:471
+#: part/views.py:331
msgid "Copied part"
msgstr ""
-#: part/views.py:525 part/views.py:663
+#: part/views.py:385 part/views.py:523
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:595
+#: part/views.py:455
msgid "Created new part"
msgstr ""
-#: part/views.py:763
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1092
+#: part/views.py:925
+msgid "None"
+msgstr ""
+
+#: part/views.py:984
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1194
-msgid "Upload Part Image"
-msgstr ""
-
-#: part/views.py:1200 part/views.py:1235
-msgid "Updated part image"
-msgstr ""
-
-#: part/views.py:1209
+#: part/views.py:1086
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1238
+#: part/views.py:1112
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:1115
msgid "Part image not found"
msgstr ""
-#: part/views.py:1249
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1284
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1314
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1335
+#: part/views.py:1212
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1356
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1367
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1501
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1862
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1887 part/views.py:1890
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr ""
-#: part/views.py:1896
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1934
+#: part/views.py:1811
msgid "Select a part"
msgstr ""
-#: part/views.py:1940
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1944
+#: part/views.py:1821
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2090
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2222
+#: part/views.py:2099
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2363
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr "Parça Parametre Şablonu Oluştur"
-#: part/views.py:2373
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr "Parça Parametre Şablonu Düzenle"
-#: part/views.py:2380
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
-#: part/views.py:2388
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2438
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2452
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2512
-msgid "Edit Part Category"
-msgstr ""
-
-#: part/views.py:2550
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2556
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2608
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr "Kategori Parametre Şablonu Oluştur"
-#: part/views.py:2709
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr "Kategori Parametre Şablonu Düzenle"
-#: part/views.py:2765
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr "Kategori Parametre Şablonu Sil"
-#: part/views.py:2784
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2854
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2910
-msgid "Confim BOM item deletion"
+#: part/views.py:2792
+msgid "Added new price break"
msgstr ""
-#: part/views.py:2998
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3006
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5358,17 +5307,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1739
+#: stock/models.py:1759
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1745
+#: stock/models.py:1765
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:1012
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr ""
@@ -5380,287 +5329,287 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:212
+#: stock/api.py:211
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr "{n} öge için stok güncellendi"
-#: stock/api.py:281
+#: stock/api.py:280
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
+#: stock/forms.py:81 stock/forms.py:385 stock/models.py:513
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:419
+#: stock/forms.py:82 stock/forms.py:386
msgid "Expiration date for this stock item"
msgstr "Bu stok kalemi için son kullanma tarihi"
-#: stock/forms.py:118
+#: stock/forms.py:85
msgid "Enter unique serial numbers (or leave blank)"
msgstr "Benzersiz seri numaraları giriniz (veya boş bırakınız)"
-#: stock/forms.py:169
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr "Seri numaralandırılmış stok için hedef konum(varsayılan olarak, geçerli konumda kalacaktır)"
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr "Seri numaraları"
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr "Benzersiz seri numaraları (miktar ile eşleşmeli)"
-#: stock/forms.py:173 stock/forms.py:349
+#: stock/forms.py:140 stock/forms.py:316
msgid "Add transaction note (optional)"
msgstr "İşlem notu ekle (isteğe bağlı)"
-#: stock/forms.py:203 stock/forms.py:259
+#: stock/forms.py:170 stock/forms.py:226
msgid "Select test report template"
msgstr "Test raporu şablonu seç"
-#: stock/forms.py:267 templates/js/table_filters.js:75
+#: stock/forms.py:234 templates/js/table_filters.js:75
#: templates/js/table_filters.js:138
msgid "Include sublocations"
msgstr "Alt konumları dahil et"
-#: stock/forms.py:267
+#: stock/forms.py:234
msgid "Include stock items in sub locations"
msgstr "Stok kalemlerine alt konumları dahil et"
-#: stock/forms.py:302
+#: stock/forms.py:269
msgid "Stock item to install"
msgstr "Kurulacak stok kalemi"
-#: stock/forms.py:309
+#: stock/forms.py:276
msgid "Stock quantity to assign"
msgstr "Atanacak stok miktarı"
-#: stock/forms.py:337
+#: stock/forms.py:304
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:347
+#: stock/forms.py:314
msgid "Destination location for uninstalled items"
msgstr "Sökülen ögeler için hedef konum"
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm removal of installed stock items"
msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla"
-#: stock/forms.py:375
+#: stock/forms.py:342
msgid "Destination stock location"
msgstr "Hedef stok konumu"
-#: stock/forms.py:377
+#: stock/forms.py:344
msgid "Add note (required)"
msgstr "Not ekle (gerekli)"
-#: stock/forms.py:381 stock/views.py:852 stock/views.py:1051
+#: stock/forms.py:348 stock/views.py:705 stock/views.py:904
msgid "Confirm stock adjustment"
msgstr "Stok ayarlamasını onayla"
-#: stock/forms.py:381
+#: stock/forms.py:348
msgid "Confirm movement of stock items"
msgstr "Stok kalemlerinin hareketini onaylayın"
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set Default Location"
msgstr "Varsayılan Konum Ayarla"
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set the destination as the default location for selected parts"
msgstr "Hedefi seçili parçalar için varsayılan konum olarak ayarla"
-#: stock/models.py:52 stock/models.py:542
+#: stock/models.py:56 stock/models.py:550
msgid "Owner"
msgstr ""
-#: stock/models.py:53 stock/models.py:543
+#: stock/models.py:57 stock/models.py:551
msgid "Select Owner"
msgstr ""
-#: stock/models.py:271
+#: stock/models.py:279
msgid "StockItem with this serial number already exists"
msgstr "Bu seri numarasına sahip stok kalemi zaten var"
-#: stock/models.py:307
+#: stock/models.py:315
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:317 stock/models.py:326
+#: stock/models.py:325 stock/models.py:334
msgid "Quantity must be 1 for item with a serial number"
msgstr "Seri numarası olan ögenin miktarı bir olmalı"
-#: stock/models.py:318
+#: stock/models.py:326
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Miktar birden büyük ise seri numarası ayarlanamaz"
-#: stock/models.py:340
+#: stock/models.py:348
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:346
+#: stock/models.py:354
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:361
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:395
+#: stock/models.py:403
msgid "Parent Stock Item"
msgstr "Üst Stok Kalemi"
-#: stock/models.py:404
+#: stock/models.py:412
msgid "Base part"
msgstr ""
-#: stock/models.py:413
+#: stock/models.py:421
msgid "Select a matching supplier part for this stock item"
msgstr "Bu stok kalemi için tedarikçi parçası seçin"
-#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:426 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Stok Konumu"
-#: stock/models.py:421
+#: stock/models.py:429
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:428
+#: stock/models.py:436
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:433 stock/templates/stock/item_base.html:270
+#: stock/models.py:441 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:436
+#: stock/models.py:444
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:452
+#: stock/models.py:460
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:464
+#: stock/models.py:472
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:476
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:477
+#: stock/models.py:485
msgid "Source Build"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:487
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:490
+#: stock/models.py:498
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:493
+#: stock/models.py:501
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:499
+#: stock/models.py:507
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:514
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:529 stock/templates/stock/item_notes.html:13
+#: stock/models.py:537 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:538
+#: stock/models.py:546
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1006
+#: stock/models.py:1014
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1012
+#: stock/models.py:1020
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1018
+#: stock/models.py:1026
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1021
+#: stock/models.py:1029
msgid "Serial numbers must be a list of integers"
msgstr "Seri numaraları tam sayı listesi olmalı"
-#: stock/models.py:1024
+#: stock/models.py:1032
msgid "Quantity does not match serial numbers"
msgstr "Miktar seri numaları ile eşleşmiyor"
-#: stock/models.py:1031
+#: stock/models.py:1039
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seri numaraları zaten mevcut: {exists}"
-#: stock/models.py:1189
+#: stock/models.py:1197
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:1663
+#: stock/models.py:1679
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1716
+#: stock/models.py:1736
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1722
+#: stock/models.py:1742
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1740
+#: stock/models.py:1760
msgid "Test name"
msgstr ""
-#: stock/models.py:1746 templates/js/table_filters.js:217
+#: stock/models.py:1766 templates/js/table_filters.js:222
msgid "Test result"
msgstr ""
-#: stock/models.py:1752
+#: stock/models.py:1772
msgid "Test output value"
msgstr ""
-#: stock/models.py:1759
+#: stock/models.py:1779
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1785
msgid "Test notes"
msgstr ""
@@ -5850,6 +5799,10 @@ msgstr ""
msgid "No stocktake performed"
msgstr ""
+#: stock/templates/stock/item_base.html:499
+msgid "Edit Stock Status"
+msgstr ""
+
#: stock/templates/stock/item_childs.html:12
msgid "Child Stock Items"
msgstr ""
@@ -5909,6 +5862,19 @@ msgstr ""
msgid "Add Test Data"
msgstr ""
+#: stock/templates/stock/item_tests.html:86
+#: stock/templates/stock/item_tests.html:111
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:131
+msgid "Edit Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:145
+msgid "Delete Test Result"
+msgstr ""
+
#: stock/templates/stock/location.html:20
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenlenemez."
@@ -5957,7 +5923,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:97 users/models.py:41
+#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr "Stok Konumları"
@@ -5997,7 +5963,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1196
msgid "Convert Stock Item"
msgstr "Stok Kalemine Dönüştür"
@@ -6030,8 +5996,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr "Stok konumunu düzenle"
-#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
-#: stock/views.py:1830
+#: stock/views.py:230 stock/views.py:1175 stock/views.py:1297
+#: stock/views.py:1662
msgid "Owner is required (ownership control is enabled)"
msgstr "Sahip gerekli (sahip kontrolü etkinleştirildi)"
@@ -6039,208 +6005,188 @@ msgstr "Sahip gerekli (sahip kontrolü etkinleştirildi)"
msgid "Stock Location QR code"
msgstr "Stok Konumu QR Kodu"
-#: stock/views.py:265
-msgid "Add Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:311
-msgid "Edit Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:327
-msgid "Delete Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:343
+#: stock/views.py:264
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:273
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:297
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:385
+#: stock/views.py:306
msgid "Specify a valid location"
msgstr "Geçerli bir konum belirtiniz"
-#: stock/views.py:396
+#: stock/views.py:317
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:407
+#: stock/views.py:328
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:345
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:444
-msgid "Add Test Result"
-msgstr ""
-
-#: stock/views.py:484
-msgid "Edit Test Result"
-msgstr ""
-
-#: stock/views.py:501
-msgid "Delete Test Result"
-msgstr ""
-
-#: stock/views.py:509
+#: stock/views.py:362
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:630
+#: stock/views.py:483
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:656
+#: stock/views.py:509
msgid "Install Stock Item"
msgstr ""
-#: stock/views.py:755
+#: stock/views.py:608
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:863
+#: stock/views.py:716
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:888
+#: stock/views.py:741
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Take"
msgstr ""
-#: stock/views.py:1001
+#: stock/views.py:854
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:187
+#: stock/views.py:854 users/models.py:188
msgid "Add"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:855
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:1031
+#: stock/views.py:884
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:1036
+#: stock/views.py:889
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:1043
+#: stock/views.py:896
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:1107
+#: stock/views.py:960
msgid "No action performed"
msgstr "Herhangi bir işlem gerçekleştirilmedi"
-#: stock/views.py:1122
+#: stock/views.py:975
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:1137
+#: stock/views.py:990
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:1150
+#: stock/views.py:1003
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:1190
+#: stock/views.py:1043
msgid "No items were moved"
msgstr ""
-#: stock/views.py:1193
+#: stock/views.py:1046
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:1212
+#: stock/views.py:1065
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1222
-msgid "Edit Stock Item Status"
-msgstr ""
-
-#: stock/views.py:1245
+#: stock/views.py:1077
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1482
+#: stock/views.py:1314
msgid "Serialize Stock"
msgstr "Stoku Seri Numarala"
-#: stock/views.py:1575 templates/js/build.js:327
+#: stock/views.py:1407 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1717
+#: stock/views.py:1549
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1799
+#: stock/views.py:1631
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1899
+#: stock/views.py:1731
msgid "Delete Stock Location"
msgstr "Stok Konumunu Sil"
-#: stock/views.py:1912
+#: stock/views.py:1744
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1923
+#: stock/views.py:1755
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1930
+#: stock/views.py:1762
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1939
+#: stock/views.py:1771
msgid "Add Stock Tracking Entry"
msgstr ""
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
msgstr ""
@@ -6269,35 +6215,39 @@ msgstr ""
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:145
-msgid "Expired Stock"
+#: templates/InvenTree/index.html:131
+msgid "Depleted Stock"
msgstr ""
#: templates/InvenTree/index.html:146
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:147
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:192
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:185
+#: templates/InvenTree/index.html:193
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:214
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:207
+#: templates/InvenTree/index.html:215
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:237
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:230
+#: templates/InvenTree/index.html:238
msgid "Overdue Sales Orders"
msgstr ""
@@ -6582,24 +6532,12 @@ msgstr ""
msgid "copy version information"
msgstr ""
-#: templates/about.html:100 templates/js/modals.js:568
-#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54
-#: templates/modals.html:97
+#: templates/about.html:100 templates/js/modals.js:34
+#: templates/js/modals.js:677 templates/js/modals.js:970
+#: templates/modals.html:29 templates/modals.html:54 templates/modals.html:97
msgid "Close"
msgstr ""
-#: templates/attachment_table.html:6
-msgid "Add Attachment"
-msgstr ""
-
-#: templates/attachment_table.html:17
-msgid "Uploaded"
-msgstr ""
-
-#: templates/attachment_table.html:35
-msgid "Delete attachment"
-msgstr ""
-
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6616,6 +6554,22 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
+#: templates/js/attachment.js:16
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/attachment.js:56
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/attachment.js:69
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/attachment.js:76
+msgid "Delete attachment"
+msgstr ""
+
#: templates/js/barcode.js:8
msgid "Scan barcode data here using wedge scanner"
msgstr ""
@@ -6644,7 +6598,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:921
+#: templates/js/barcode.js:119 templates/js/modals.js:1030
msgid "Invalid server response"
msgstr ""
@@ -6744,7 +6698,7 @@ msgstr ""
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:372
+#: templates/js/bom.js:372 templates/js/bom.js:519
msgid "Delete BOM Item"
msgstr ""
@@ -6772,7 +6726,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/build.js:222 templates/js/order.js:382
+#: templates/js/build.js:222 templates/js/order.js:449
msgid "Location not specified"
msgstr ""
@@ -6798,7 +6752,7 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
-#: templates/js/stock.js:514 templates/js/stock.js:966
+#: templates/js/stock.js:514 templates/js/stock.js:980
msgid "Select"
msgstr ""
@@ -6810,45 +6764,69 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/company.js:74
+#: templates/js/company.js:45
+msgid "Edit Company"
+msgstr ""
+
+#: templates/js/company.js:66
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/company.js:143
msgid "Parts Supplied"
msgstr ""
-#: templates/js/company.js:83
+#: templates/js/company.js:152
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/company.js:96
+#: templates/js/company.js:165
msgid "No company information found"
msgstr ""
-#: templates/js/company.js:129
+#: templates/js/company.js:183
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/company.js:200
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/company.js:253
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/company.js:148 templates/js/company.js:347
+#: templates/js/company.js:272 templates/js/company.js:472
#: templates/js/part.js:68 templates/js/part.js:153
msgid "Template part"
msgstr "Şablon Parça"
-#: templates/js/company.js:152 templates/js/company.js:351
+#: templates/js/company.js:276 templates/js/company.js:476
#: templates/js/part.js:72 templates/js/part.js:157
msgid "Assembled part"
msgstr ""
-#: templates/js/company.js:226
+#: templates/js/company.js:350
msgid "No parameters found"
msgstr ""
-#: templates/js/company.js:262
+#: templates/js/company.js:386
msgid "Edit parameter"
msgstr ""
-#: templates/js/company.js:263
+#: templates/js/company.js:387
msgid "Delete parameter"
msgstr ""
-#: templates/js/company.js:328
+#: templates/js/company.js:406
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/company.js:417
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/company.js:453
msgid "No supplier parts found"
msgstr ""
@@ -6876,6 +6854,83 @@ msgstr ""
msgid "Create filter"
msgstr ""
+#: templates/js/forms.js:278 templates/js/forms.js:291
+#: templates/js/forms.js:303 templates/js/forms.js:315
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/forms.js:279
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:292
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:304
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:316
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:583 templates/js/modals.js:1040
+msgid "No Response"
+msgstr ""
+
+#: templates/js/forms.js:584 templates/js/modals.js:1041
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/forms.js:590 templates/js/modals.js:1050
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/forms.js:591 templates/js/modals.js:1051
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/forms.js:597 templates/js/modals.js:1055
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/forms.js:598 templates/js/modals.js:1056
+msgid "You do not have the required permissions to access this function"
+msgstr "Bu fonksiyona erişmek için gerekli izinlere sahip değilsiniz"
+
+#: templates/js/forms.js:604 templates/js/modals.js:1060
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/forms.js:605 templates/js/modals.js:1061
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/forms.js:611 templates/js/modals.js:1065
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/forms.js:612 templates/js/modals.js:1066
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/forms.js:618 templates/js/modals.js:1069
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/forms.js:788 templates/modals.html:21 templates/modals.html:47
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/forms.js:1161
+msgid "Searching"
+msgstr ""
+
+#: templates/js/forms.js:1301
+msgid "Clear input"
+msgstr ""
+
#: templates/js/label.js:10 templates/js/report.js:98
msgid "Select Stock Items"
msgstr ""
@@ -6916,112 +6971,102 @@ msgstr "Etiket Seç"
msgid "Select Label Template"
msgstr "Etiket Şablonu Seç"
-#: templates/js/modals.js:265
-msgid "Waiting for server..."
-msgstr ""
-
-#: templates/js/modals.js:424
-msgid "Show Error Information"
-msgstr ""
-
-#: templates/js/modals.js:491 templates/modals.html:76
-msgid "Accept"
-msgstr ""
-
-#: templates/js/modals.js:492 templates/modals.html:75
+#: templates/js/modals.js:59 templates/js/modals.js:105
+#: templates/js/modals.js:601 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:556
-msgid "Loading Data"
-msgstr ""
-
-#: templates/js/modals.js:567 templates/js/modals.js:860
+#: templates/js/modals.js:60 templates/js/modals.js:104
+#: templates/js/modals.js:676 templates/js/modals.js:969
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:103
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/modals.js:374
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/modals.js:533
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/modals.js:600 templates/modals.html:76
+msgid "Accept"
+msgstr ""
+
+#: templates/js/modals.js:665
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/modals.js:920
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:920
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:824
+#: templates/js/modals.js:933
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:921
+#: templates/js/modals.js:1030
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:931
-msgid "No Response"
-msgstr ""
-
-#: templates/js/modals.js:932
-msgid "No response from the InvenTree server"
-msgstr ""
-
-#: templates/js/modals.js:936
+#: templates/js/modals.js:1045
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:937
+#: templates/js/modals.js:1046
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:941
-msgid "Error 401: Not Authenticated"
+#: templates/js/model_renderers.js:21
+msgid "Company ID"
msgstr ""
-#: templates/js/modals.js:942
-msgid "Authentication credentials not supplied"
+#: templates/js/model_renderers.js:63
+msgid "Location ID"
msgstr ""
-#: templates/js/modals.js:946
-msgid "Error 403: Permission Denied"
+#: templates/js/model_renderers.js:90
+msgid "Part ID"
msgstr ""
-#: templates/js/modals.js:947
-msgid "You do not have the required permissions to access this function"
-msgstr "Bu fonksiyona erişmek için gerekli izinlere sahip değilsiniz"
-
-#: templates/js/modals.js:951
-msgid "Error 404: Resource Not Found"
+#: templates/js/model_renderers.js:126
+msgid "Category ID"
msgstr ""
-#: templates/js/modals.js:952
-msgid "The requested resource could not be located on the server"
+#: templates/js/model_renderers.js:150
+msgid "Supplier Part ID"
msgstr ""
-#: templates/js/modals.js:956
-msgid "Error 408: Timeout"
+#: templates/js/order.js:31
+msgid "Create Sales Order"
msgstr ""
-#: templates/js/modals.js:957
-msgid "Connection timeout while requesting data from server"
-msgstr ""
-
-#: templates/js/modals.js:960
-msgid "Error requesting form data"
-msgstr ""
-
-#: templates/js/order.js:138
+#: templates/js/order.js:200
msgid "No purchase orders found"
msgstr ""
-#: templates/js/order.js:162 templates/js/order.js:257
+#: templates/js/order.js:224 templates/js/order.js:319
msgid "Order is overdue"
msgstr ""
-#: templates/js/order.js:234
+#: templates/js/order.js:296
msgid "No sales orders found"
msgstr ""
-#: templates/js/order.js:343
+#: templates/js/order.js:333
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/order.js:410
msgid "No sales order allocations found"
msgstr ""
@@ -7061,11 +7106,11 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:476 templates/js/table_filters.js:323
+#: templates/js/part.js:476 templates/js/table_filters.js:328
msgid "Low stock"
msgstr ""
-#: templates/js/part.js:660 templates/js/stock.js:990
+#: templates/js/part.js:660 templates/js/stock.js:1004
msgid "Path"
msgstr ""
@@ -7085,7 +7130,22 @@ msgstr ""
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/part.js:806
+#: templates/js/part.js:786
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/part.js:839
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:840
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:959
msgid "Single Price Difference"
msgstr ""
@@ -7263,75 +7323,75 @@ msgstr ""
msgid "Stocktake"
msgstr ""
-#: templates/js/stock.js:853
+#: templates/js/stock.js:867
msgid "Stock Status"
msgstr ""
-#: templates/js/stock.js:868
+#: templates/js/stock.js:882
msgid "Set Stock Status"
msgstr ""
-#: templates/js/stock.js:882
+#: templates/js/stock.js:896
msgid "Select Status Code"
msgstr ""
-#: templates/js/stock.js:883
+#: templates/js/stock.js:897
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1022
+#: templates/js/stock.js:1036
msgid "Invalid date"
msgstr ""
-#: templates/js/stock.js:1069
+#: templates/js/stock.js:1083
msgid "Location no longer exists"
msgstr "Konum artık yok"
-#: templates/js/stock.js:1088
+#: templates/js/stock.js:1102
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/stock.js:1107
+#: templates/js/stock.js:1121
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/stock.js:1125
+#: templates/js/stock.js:1139
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/stock.js:1148
+#: templates/js/stock.js:1162
msgid "Added"
msgstr ""
-#: templates/js/stock.js:1156
+#: templates/js/stock.js:1170
msgid "Removed"
msgstr ""
-#: templates/js/stock.js:1188
+#: templates/js/stock.js:1202
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1200
+#: templates/js/stock.js:1214
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1201
+#: templates/js/stock.js:1215
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1325
+#: templates/js/stock.js:1339
msgid "Create New Location"
msgstr "Yeni Konum Oluştur"
-#: templates/js/stock.js:1366
+#: templates/js/stock.js:1380
msgid "No installed items"
msgstr ""
-#: templates/js/stock.js:1389
+#: templates/js/stock.js:1403
msgid "Serial"
msgstr "Seri No"
-#: templates/js/stock.js:1417
+#: templates/js/stock.js:1431
msgid "Uninstall Stock Item"
msgstr ""
@@ -7352,7 +7412,7 @@ msgid "Include locations"
msgstr "Konumları dahil et"
#: templates/js/table_filters.js:86 templates/js/table_filters.js:87
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:305
msgid "Include subcategories"
msgstr ""
@@ -7385,7 +7445,7 @@ msgstr "Seri numarası"
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:290
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:295
msgid "Active parts"
msgstr ""
@@ -7457,43 +7517,51 @@ msgstr ""
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:236
+#: templates/js/table_filters.js:211
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/table_filters.js:212
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/table_filters.js:241
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
+#: templates/js/table_filters.js:265 templates/js/table_filters.js:282
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:306
msgid "Include parts in subcategories"
msgstr "Alt kategorilerdeki parçaları dahil et"
-#: templates/js/table_filters.js:305
+#: templates/js/table_filters.js:310
msgid "Has IPN"
msgstr "DPN Var"
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:311
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:311
+#: templates/js/table_filters.js:316
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:319
+#: templates/js/table_filters.js:324
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:335
+#: templates/js/table_filters.js:340
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:347
+#: templates/js/table_filters.js:352
msgid "Purchasable"
msgstr ""
@@ -7550,10 +7618,6 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:47
-msgid "Form errors exist"
-msgstr ""
-
#: templates/navbar.html:13
msgid "Toggle navigation"
msgstr ""
@@ -7570,7 +7634,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:38
+#: templates/navbar.html:77 users/models.py:39
msgid "Admin"
msgstr ""
@@ -7790,35 +7854,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:174
+#: users/models.py:175
msgid "Permission set"
msgstr ""
-#: users/models.py:182
+#: users/models.py:183
msgid "Group"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "View"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "Permission to view items"
msgstr ""
-#: users/models.py:187
+#: users/models.py:188
msgid "Permission to add items"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Change"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:191
+#: users/models.py:192
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 006635f31e..a5b51e77ec 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-01 22:35+0000\n"
-"PO-Revision-Date: 2021-07-01 22:38\n"
+"POT-Creation-Date: 2021-07-03 12:15+0000\n"
+"PO-Revision-Date: 2021-07-03 12:44\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -29,14 +29,14 @@ msgstr "未指定操作"
msgid "No matching action found"
msgstr "未找到指定操作"
-#: InvenTree/fields.py:84
+#: InvenTree/fields.py:99
msgid "Enter date"
msgstr "输入日期"
#: InvenTree/forms.py:112 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:31 order/forms.py:42 order/forms.py:53 order/forms.py:64
-#: order/forms.py:75 part/forms.py:134
+#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
+#: order/forms.py:74 part/forms.py:118 templates/js/forms.js:486
msgid "Confirm"
msgstr "确认"
@@ -77,8 +77,8 @@ msgstr "选择分类"
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 order/models.py:244 order/models.py:354
-#: stock/views.py:1795
+#: InvenTree/helpers.py:403 order/models.py:311 order/models.py:421
+#: stock/views.py:1627
msgid "Invalid quantity provided"
msgstr ""
@@ -106,49 +106,53 @@ msgstr "未找到序列号"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1758
+#: InvenTree/models.py:61 stock/models.py:1778
msgid "Attachment"
msgstr "附件"
-#: InvenTree/models.py:60
+#: InvenTree/models.py:62
msgid "Select file to attach"
msgstr "选择附件"
-#: InvenTree/models.py:62 templates/attachment_table.html:16
+#: InvenTree/models.py:64 templates/js/attachment.js:52
msgid "Comment"
msgstr "注释"
-#: InvenTree/models.py:62
+#: InvenTree/models.py:64
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:2022
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2043
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1179
+#: templates/js/stock.js:1193
msgid "User"
msgstr "用户"
-#: InvenTree/models.py:72
+#: InvenTree/models.py:74
msgid "upload date"
msgstr "上传日期"
-#: InvenTree/models.py:107 InvenTree/models.py:108 company/models.py:396
-#: label/models.py:102 part/models.py:671 part/models.py:2163
+#: InvenTree/models.py:102
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:414
+#: label/models.py:103 part/models.py:680 part/models.py:2192
#: part/templates/part/params.html:27 report/models.py:180
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/company.js:235 templates/js/part.js:118
-#: templates/js/part.js:642 templates/js/stock.js:972
+#: templates/js/company.js:359 templates/js/part.js:118
+#: templates/js/part.js:642 templates/js/stock.js:986
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:114 build/models.py:135
-#: build/templates/build/detail.html:21 company/models.py:339
-#: company/models.py:532 company/templates/company/detail.html:27
+#: InvenTree/models.py:125 build/models.py:139
+#: build/templates/build/detail.html:21 company/models.py:353
+#: company/models.py:554 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
-#: order/models.py:100 order/templates/order/purchase_order_detail.html:147
-#: part/models.py:695 part/templates/part/detail.html:54
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:110
+#: order/models.py:154 order/templates/order/purchase_order_detail.html:174
+#: part/models.py:704 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:193
#: report/models.py:530 report/models.py:569
#: report/templates/report/inventree_build_order_base.html:118
@@ -156,39 +160,43 @@ msgstr "名称"
#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
#: templates/js/build.js:834 templates/js/build.js:1102
-#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:177 templates/js/part.js:260
+#: templates/js/company.js:125 templates/js/order.js:245
+#: templates/js/order.js:347 templates/js/part.js:177 templates/js/part.js:260
#: templates/js/part.js:437 templates/js/part.js:654 templates/js/part.js:722
-#: templates/js/stock.js:557 templates/js/stock.js:984
-#: templates/js/stock.js:1029
+#: templates/js/stock.js:557 templates/js/stock.js:998
+#: templates/js/stock.js:1043
msgid "Description"
msgstr ""
-#: InvenTree/models.py:115
+#: InvenTree/models.py:126
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:123
+#: InvenTree/models.py:134
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:504
-msgid "English"
+#: InvenTree/serializers.py:52
+msgid "Must be a valid number"
msgstr ""
#: InvenTree/settings.py:505
-msgid "French"
+msgid "English"
msgstr ""
#: InvenTree/settings.py:506
-msgid "German"
+msgid "French"
msgstr ""
#: InvenTree/settings.py:507
-msgid "Polish"
+msgid "German"
msgstr ""
#: InvenTree/settings.py:508
+msgid "Polish"
+msgstr ""
+
+#: InvenTree/settings.py:509
msgid "Turkish"
msgstr ""
@@ -446,50 +454,48 @@ msgid "Order target date"
msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:121 order/forms.py:118 order/forms.py:153
+#: build/templates/build/detail.html:121
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:119
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:881 templates/js/order.js:200
-#: templates/js/order.js:298
+#: templates/js/build.js:881 templates/js/order.js:262
+#: templates/js/order.js:365
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:225
+#: build/forms.py:43 build/models.py:229
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1346
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1354
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
#: build/templates/build/detail.html:31 common/models.py:741
-#: company/forms.py:189 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:197 order/forms.py:215 order/forms.py:250 order/forms.py:272
-#: order/forms.py:289 order/models.py:613 order/models.py:835
-#: order/templates/order/order_wizard/match_parts.html:30
+#: company/forms.py:124 company/templates/company/supplier_part_pricing.html:79
+#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:702
+#: order/models.py:941 order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/purchase_order_detail.html:179
-#: order/templates/order/sales_order_detail.html:70
-#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:162
-#: order/templates/order/sales_order_detail.html:234 part/forms.py:342
-#: part/forms.py:372 part/forms.py:388 part/forms.py:404 part/models.py:2293
-#: part/templates/part/internal_prices.html:98
-#: part/templates/part/order_prices.html:203
-#: part/templates/part/part_pricing.html:16
-#: part/templates/part/sale_prices.html:85
+#: order/templates/order/purchase_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:80
+#: order/templates/order/sales_order_detail.html:87
+#: order/templates/order/sales_order_detail.html:172
+#: order/templates/order/sales_order_detail.html:244 part/forms.py:314
+#: part/forms.py:344 part/forms.py:360 part/forms.py:376 part/models.py:2330
+#: part/templates/part/part_pricing.html:16 part/templates/part/prices.html:377
+#: part/templates/part/prices.html:474
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308
+#: stock/forms.py:142 stock/forms.py:275
#: stock/templates/stock/item_base.html:255
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:233 templates/js/build.js:572
-#: templates/js/build.js:1112 templates/js/order.js:393
-#: templates/js/part.js:796 templates/js/stock.js:1164
-#: templates/js/stock.js:1383
+#: templates/js/build.js:1112 templates/js/model_renderers.js:43
+#: templates/js/order.js:460 templates/js/part.js:827 templates/js/part.js:949
+#: templates/js/part.js:1005 templates/js/stock.js:1178
+#: templates/js/stock.js:1397
msgid "Quantity"
msgstr ""
@@ -501,7 +507,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:244 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:114 stock/forms.py:85
msgid "Serial Numbers"
msgstr ""
@@ -530,12 +536,12 @@ msgid "Mark build as complete"
msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: stock/forms.py:347 stock/templates/stock/item_base.html:285
+#: stock/forms.py:314 stock/templates/stock/item_base.html:285
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:218
-#: templates/js/build.js:586 templates/js/order.js:378
-#: templates/js/stock.js:643 templates/js/stock.js:1056
+#: templates/js/build.js:586 templates/js/order.js:445
+#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr ""
@@ -544,13 +550,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:59 order/models.py:465
+#: build/templates/build/detail.html:59 order/models.py:545
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:408 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:868
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:630 templates/js/stock.js:1133
-#: templates/js/stock.js:1399
+#: templates/js/order.js:249 templates/js/order.js:352
+#: templates/js/stock.js:630 templates/js/stock.js:1147
+#: templates/js/stock.js:1413
msgid "Status"
msgstr ""
@@ -582,60 +588,60 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:66 build/templates/build/build_base.html:9
+#: build/models.py:70 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:195
msgid "Build Order"
msgstr ""
-#: build/models.py:67 build/templates/build/index.html:8
+#: build/models.py:71 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:58
-#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:183
+#: part/templates/part/navbar.html:61 templates/InvenTree/index.html:191
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:34 users/models.py:43
+#: templates/InvenTree/settings/tabs.html:34 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:127
+#: build/models.py:131
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:128 order/models.py:98 order/models.py:615
-#: order/templates/order/purchase_order_detail.html:174
-#: order/templates/order/sales_order_detail.html:229 part/models.py:2302
+#: build/models.py:132 order/models.py:242 order/models.py:529
+#: order/models.py:709 order/templates/order/purchase_order_detail.html:201
+#: order/templates/order/sales_order_detail.html:239 part/models.py:2339
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:661 templates/js/build.js:1106
msgid "Reference"
msgstr ""
-#: build/models.py:138
+#: build/models.py:142
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:147 build/templates/build/build_base.html:163
+#: build/models.py:151 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr ""
-#: build/models.py:148
+#: build/models.py:152
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:153 build/templates/build/auto_allocate.html:16
+#: build/models.py:157 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:26 company/models.py:663
-#: order/models.py:657 order/models.py:712
+#: build/templates/build/detail.html:26 company/models.py:689
+#: order/models.py:755 order/models.py:814
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:132
+#: order/templates/order/purchase_order_detail.html:159
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:214 part/models.py:321
-#: part/models.py:1975 part/models.py:1987 part/models.py:2002
-#: part/models.py:2020 part/models.py:2095 part/models.py:2191
-#: part/models.py:2277 part/templates/part/part_app_base.html:8
+#: order/templates/order/sales_order_detail.html:224 part/models.py:325
+#: part/models.py:1988 part/models.py:2004 part/models.py:2023
+#: part/models.py:2041 part/models.py:2120 part/models.py:2224
+#: part/models.py:2314 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
@@ -644,222 +650,222 @@ msgstr ""
#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
#: templates/js/build.js:552 templates/js/build.js:839
-#: templates/js/build.js:1079 templates/js/company.js:140
-#: templates/js/company.js:339 templates/js/part.js:241
+#: templates/js/build.js:1079 templates/js/company.js:264
+#: templates/js/company.js:464 templates/js/part.js:241
#: templates/js/part.js:404 templates/js/stock.js:526
-#: templates/js/stock.js:1371
+#: templates/js/stock.js:1385
msgid "Part"
msgstr ""
-#: build/models.py:161
+#: build/models.py:165
msgid "Select part to build"
msgstr ""
-#: build/models.py:166
+#: build/models.py:170
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:170
+#: build/models.py:174
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:175
+#: build/models.py:179
msgid "Source Location"
msgstr ""
-#: build/models.py:179
+#: build/models.py:183
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:184
+#: build/models.py:188
msgid "Destination Location"
msgstr ""
-#: build/models.py:188
+#: build/models.py:192
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:192
+#: build/models.py:196
msgid "Build Quantity"
msgstr ""
-#: build/models.py:195
+#: build/models.py:199
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:199
+#: build/models.py:203
msgid "Completed items"
msgstr ""
-#: build/models.py:201
+#: build/models.py:205
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:205 part/templates/part/part_base.html:167
+#: build/models.py:209 part/templates/part/part_base.html:167
msgid "Build Status"
msgstr ""
-#: build/models.py:209
+#: build/models.py:213
msgid "Build status code"
msgstr ""
-#: build/models.py:213 stock/models.py:462
+#: build/models.py:217 stock/models.py:470
msgid "Batch Code"
msgstr ""
-#: build/models.py:217
+#: build/models.py:221
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:220 order/models.py:104 part/models.py:867
-#: part/templates/part/detail.html:126 templates/js/order.js:293
+#: build/models.py:224 order/models.py:158 part/models.py:876
+#: part/templates/part/detail.html:126 templates/js/order.js:360
msgid "Creation Date"
msgstr ""
-#: build/models.py:224 order/models.py:471
+#: build/models.py:228 order/models.py:551
msgid "Target completion date"
msgstr ""
-#: build/models.py:228 order/models.py:217 templates/js/build.js:886
+#: build/models.py:232 order/models.py:284 templates/js/build.js:886
msgid "Completion Date"
msgstr ""
-#: build/models.py:234
+#: build/models.py:238
msgid "completed by"
msgstr ""
-#: build/models.py:242
+#: build/models.py:246
msgid "Issued by"
msgstr ""
-#: build/models.py:243
+#: build/models.py:247
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:251 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:105 order/models.py:118
+#: build/models.py:255 build/templates/build/build_base.html:184
+#: build/templates/build/detail.html:105 order/models.py:172
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:871
+#: order/templates/order/sales_order_base.html:140 part/models.py:880
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:252
+#: build/models.py:256
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:257 build/templates/build/detail.html:91
+#: build/models.py:261 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
#: company/templates/company/manufacturer_part_detail.html:28
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:94
-#: stock/models.py:456 stock/templates/stock/item_base.html:345
+#: stock/models.py:464 stock/templates/stock/item_base.html:345
msgid "External Link"
msgstr ""
-#: build/models.py:258 part/models.py:729 stock/models.py:458
+#: build/models.py:262 part/models.py:738 stock/models.py:466
msgid "Link to external URL"
msgstr ""
-#: build/models.py:262 build/templates/build/navbar.html:53
-#: company/models.py:132 company/models.py:539
+#: build/models.py:266 build/templates/build/navbar.html:53
+#: company/models.py:141 company/models.py:561
#: company/templates/company/navbar.html:70
-#: company/templates/company/navbar.html:73 order/models.py:122
-#: order/models.py:617 order/templates/order/po_navbar.html:38
+#: company/templates/company/navbar.html:73 order/models.py:176
+#: order/models.py:711 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/purchase_order_detail.html:243
-#: order/templates/order/sales_order_detail.html:309
+#: order/templates/order/purchase_order_detail.html:270
+#: order/templates/order/sales_order_detail.html:319
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:856
-#: part/templates/part/navbar.html:145
+#: order/templates/order/so_navbar.html:36 part/models.py:865
+#: part/templates/part/navbar.html:133
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:528 stock/models.py:1662 stock/models.py:1764
+#: stock/forms.py:140 stock/forms.py:284 stock/forms.py:316 stock/forms.py:344
+#: stock/models.py:536 stock/models.py:1678 stock/models.py:1784
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:699
+#: templates/js/bom.js:349 templates/js/stock.js:141 templates/js/stock.js:713
msgid "Notes"
msgstr ""
-#: build/models.py:263
+#: build/models.py:267
msgid "Extra build notes"
msgstr ""
-#: build/models.py:740
+#: build/models.py:744
msgid "No build output specified"
msgstr ""
-#: build/models.py:743
+#: build/models.py:747
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:746
+#: build/models.py:750
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1152
+#: build/models.py:1160
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1177
+#: build/models.py:1185
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1181
+#: build/models.py:1189
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1188 order/models.py:809
+#: build/models.py:1196 order/models.py:915
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1192 order/models.py:812
+#: build/models.py:1200 order/models.py:918
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1204
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1264
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1316 stock/templates/stock/item_base.html:317
+#: build/models.py:1324 stock/templates/stock/item_base.html:317
#: templates/InvenTree/search.html:183 templates/js/build.js:812
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1317
+#: build/models.py:1325
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1333 stock/templates/stock/item_base.html:8
+#: build/models.py:1341 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:339
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:206
#: templates/js/build.js:211 templates/js/build.js:929
-#: templates/js/order.js:366 templates/js/order.js:371
-#: templates/js/stock.js:1115
+#: templates/js/order.js:433 templates/js/order.js:438
+#: templates/js/stock.js:1129
msgid "Stock Item"
msgstr ""
-#: build/models.py:1334
+#: build/models.py:1342
msgid "Source stock item"
msgstr ""
-#: build/models.py:1347
+#: build/models.py:1355
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1355
+#: build/models.py:1363
msgid "Install into"
msgstr ""
-#: build/models.py:1356
+#: build/models.py:1364
msgid "Destination stock item"
msgstr ""
@@ -893,7 +899,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:992
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:724
#: part/templates/part/category.html:136
msgid "Order Parts"
msgstr ""
@@ -912,23 +918,52 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:160
+#: order/templates/order/sales_order_detail.html:85
+#: order/templates/order/sales_order_detail.html:170
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:450 stock/templates/stock/item_base.html:249
-#: templates/js/build.js:570
+#: stock/models.py:458 stock/templates/stock/item_base.html:249
+#: templates/js/build.js:570 templates/js/model_renderers.js:41
msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:35
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:136
-#: part/templates/part/navbar.html:139 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:124
+#: part/templates/part/navbar.html:127 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
+#: build/templates/build/attachments.html:51
+#: order/templates/order/so_attachments.html:79
+#: part/templates/part/attachments.html:81
+#: stock/templates/stock/item_attachments.html:81
+#: templates/attachment_table.html:6
+msgid "Add Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:69
+#: order/templates/order/so_attachments.html:52
+#: part/templates/part/attachments.html:35
+#: stock/templates/stock/item_attachments.html:49
+msgid "Edit Attachment"
+msgstr ""
+
+#: build/templates/build/attachments.html:76
+#: order/templates/order/so_attachments.html:58
+#: part/templates/part/attachments.html:44
+#: stock/templates/stock/item_attachments.html:58
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/attachments.html:77
+#: order/templates/order/so_attachments.html:59
+#: part/templates/part/attachments.html:45
+#: stock/templates/stock/item_attachments.html:59
+msgid "Delete Attachment"
+msgstr ""
+
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
msgstr ""
@@ -989,8 +1024,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
#: order/templates/order/sales_order_base.html:88
-#: templates/js/table_filters.js:245 templates/js/table_filters.js:264
-#: templates/js/table_filters.js:281
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:269
+#: templates/js/table_filters.js:286
msgid "Overdue"
msgstr ""
@@ -1036,13 +1071,13 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:84 order/models.py:710
+#: build/templates/build/detail.html:84 order/models.py:812
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:279 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:279 templates/js/order.js:307
msgid "Sales Order"
msgstr ""
@@ -1183,10 +1218,10 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:46 order/forms.py:89 order/models.py:673
-#: order/templates/order/purchase_order_detail.html:239
-#: order/templates/order/receive_parts.html:25 stock/forms.py:169
-#: stock/forms.py:375
+#: build/templates/build/detail.html:46 order/forms.py:88 order/models.py:771
+#: order/templates/order/purchase_order_detail.html:266
+#: order/templates/order/receive_parts.html:25 stock/forms.py:136
+#: stock/forms.py:342
msgid "Destination"
msgstr ""
@@ -1196,7 +1231,7 @@ msgstr ""
#: build/templates/build/detail.html:70
#: stock/templates/stock/item_base.html:303 templates/js/stock.js:638
-#: templates/js/stock.js:1406 templates/js/table_filters.js:112
+#: templates/js/stock.js:1420 templates/js/table_filters.js:112
#: templates/js/table_filters.js:206
msgid "Batch"
msgstr ""
@@ -1251,7 +1286,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:15
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:18
-#: templates/js/stock.js:1044
+#: templates/js/stock.js:1058
msgid "Details"
msgstr ""
@@ -1287,7 +1322,6 @@ msgstr ""
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:487
-#: stock/templates/stock/item_base.html:497
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1316,7 +1350,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/views.py:1821
+#: build/views.py:184 stock/views.py:1653
msgid "Serial numbers already exist"
msgstr ""
@@ -1332,7 +1366,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:281 build/views.py:371 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:346
msgid "Check the confirmation box"
msgstr ""
@@ -1429,31 +1463,6 @@ msgstr ""
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1070
-msgid "Add Build Order Attachment"
-msgstr ""
-
-#: build/views.py:1083 order/views.py:117 order/views.py:169 part/views.py:178
-#: stock/views.py:277
-msgid "Added attachment"
-msgstr ""
-
-#: build/views.py:1119 order/views.py:196 order/views.py:217
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/views.py:1129 order/views.py:200 order/views.py:221
-msgid "Attachment updated"
-msgstr ""
-
-#: build/views.py:1139 order/views.py:236 order/views.py:250
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/views.py:1144 order/views.py:242 order/views.py:256 stock/views.py:333
-msgid "Deleted attachment"
-msgstr ""
-
#: common/files.py:66
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1470,7 +1479,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/attachment_table.html:15
+#: common/forms.py:34 templates/js/attachment.js:42
msgid "File"
msgstr ""
@@ -1503,7 +1512,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:72 company/models.py:94 company/models.py:95
+#: common/models.py:72 company/models.py:99 company/models.py:100
msgid "Company name"
msgstr ""
@@ -1607,9 +1616,9 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:160 part/models.py:2193 part/templates/part/detail.html:160
-#: report/models.py:186 stock/forms.py:259 templates/js/table_filters.js:25
-#: templates/js/table_filters.js:315
+#: common/models.py:160 part/models.py:2226 part/templates/part/detail.html:160
+#: report/models.py:186 stock/forms.py:226 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:320
msgid "Template"
msgstr ""
@@ -1617,8 +1626,8 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:167 part/models.py:819 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:128 templates/js/table_filters.js:327
+#: common/models.py:167 part/models.py:828 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:128 templates/js/table_filters.js:332
msgid "Assembly"
msgstr ""
@@ -1626,8 +1635,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:331
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:336
msgid "Component"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:181 part/models.py:836 part/templates/part/detail.html:200
+#: common/models.py:181 part/models.py:845 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
@@ -1643,8 +1652,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:188 part/models.py:841 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:339
+#: common/models.py:188 part/models.py:850 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:344
msgid "Salable"
msgstr ""
@@ -1652,8 +1661,8 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:195 part/models.py:831 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:33 templates/js/table_filters.js:343
+#: common/models.py:195 part/models.py:840 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:348
msgid "Trackable"
msgstr ""
@@ -1661,7 +1670,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:202 part/models.py:851 part/templates/part/detail.html:150
+#: common/models.py:202 part/models.py:860 part/templates/part/detail.html:150
#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -1858,13 +1867,12 @@ msgstr ""
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:742 company/forms.py:190
+#: common/models.py:742 company/forms.py:125
msgid "Price break quantity"
msgstr ""
-#: common/models.py:749 company/templates/company/supplier_part_pricing.html:82
-#: part/templates/part/internal_prices.html:103
-#: part/templates/part/sale_prices.html:90
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
+#: templates/js/part.js:832
msgid "Price"
msgstr ""
@@ -1894,16 +1902,16 @@ msgstr ""
#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22 order/views.py:605
+#: order/templates/order/po_navbar.html:22 order/views.py:337
#: part/templates/part/bom_upload/upload_file.html:27
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:761
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:621
msgid "Upload File"
msgstr ""
#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:606 part/templates/part/bom_upload/select_fields.html:58
+#: order/views.py:338 part/templates/part/bom_upload/select_fields.html:58
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:762
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr ""
@@ -1928,269 +1936,277 @@ msgstr ""
msgid "Previous Step"
msgstr ""
-#: company/forms.py:37 company/models.py:142
-#: company/templates/company/detail.html:42
-msgid "Currency"
-msgstr ""
-
-#: company/forms.py:38 company/models.py:144
-msgid "Default currency used for this company"
-msgstr ""
-
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:26 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:27 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:132 templates/js/part.js:787
+#: company/forms.py:67 templates/js/part.js:940
msgid "Single Price"
msgstr ""
-#: company/forms.py:133
+#: company/forms.py:68
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:141 company/models.py:321
+#: company/forms.py:76 company/models.py:335
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:147 company/models.py:328
+#: company/forms.py:82 company/models.py:342
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:149 company/models.py:327
+#: company/forms.py:84 company/models.py:341
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:162 part/bom.py:171
-#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:408
+#: order/templates/order/purchase_order_detail.html:189 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:305 templates/js/company.js:533
msgid "MPN"
msgstr ""
-#: company/models.py:99
+#: company/models.py:104
msgid "Company description"
msgstr ""
-#: company/models.py:100
+#: company/models.py:105
msgid "Description of the company"
msgstr ""
-#: company/models.py:104 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:33 templates/js/company.js:60
+#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:129
msgid "Website"
msgstr ""
-#: company/models.py:104
+#: company/models.py:112
msgid "Company website URL"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:77
+#: company/models.py:116 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:108
+#: company/models.py:117
msgid "Company address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:120
msgid "Phone number"
msgstr ""
-#: company/models.py:112
+#: company/models.py:121
msgid "Contact phone number"
msgstr ""
-#: company/models.py:115 company/templates/company/company_base.html:91
+#: company/models.py:124 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:115
+#: company/models.py:124
msgid "Contact email address"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:98
+#: company/models.py:127 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:119
+#: company/models.py:128
msgid "Point of contact"
msgstr ""
-#: company/models.py:121 company/models.py:333 company/models.py:526
-#: order/models.py:102 part/models.py:728
+#: company/models.py:130 company/models.py:347 company/models.py:548
+#: order/models.py:156 part/models.py:737
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/company.js:188 templates/js/company.js:419
+#: templates/js/company.js:312 templates/js/company.js:544
#: templates/js/part.js:498
msgid "Link"
msgstr ""
-#: company/models.py:121
+#: company/models.py:130
msgid "Link to external company information"
msgstr ""
-#: company/models.py:129 part/models.py:738
+#: company/models.py:138 part/models.py:747
msgid "Image"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "is customer"
msgstr ""
-#: company/models.py:134
+#: company/models.py:143
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "is supplier"
msgstr ""
-#: company/models.py:136
+#: company/models.py:145
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "is manufacturer"
msgstr ""
-#: company/models.py:138
+#: company/models.py:147
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:305 company/models.py:497 stock/models.py:403
+#: company/models.py:151 company/serializers.py:259
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:154
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:319 company/models.py:519 stock/models.py:411
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
-#: company/models.py:309 company/models.py:501 order/views.py:1603
+#: company/models.py:323 company/models.py:523 order/views.py:1127
msgid "Select part"
msgstr ""
-#: company/models.py:320 company/templates/company/detail.html:57
+#: company/models.py:334 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
#: part/bom.py:241 stock/templates/stock/item_base.html:352
-#: templates/js/company.js:44 templates/js/company.js:165
-#: templates/js/company.js:390
+#: templates/js/company.js:113 templates/js/company.js:289
+#: templates/js/company.js:515
msgid "Manufacturer"
msgstr ""
-#: company/models.py:334
+#: company/models.py:348
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:340
+#: company/models.py:354
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:390 company/models.py:520
+#: company/models.py:408 company/models.py:542
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
#: stock/templates/stock/item_base.html:362
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:397
+#: company/models.py:415
msgid "Parameter name"
msgstr ""
-#: company/models.py:403 part/templates/part/params.html:28
+#: company/models.py:421 part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1751 templates/InvenTree/settings/header.html:8
-#: templates/js/company.js:241 templates/js/stock.js:137
+#: stock/models.py:1771 templates/InvenTree/settings/header.html:8
+#: templates/js/company.js:365 templates/js/stock.js:137
msgid "Value"
msgstr ""
-#: company/models.py:404
+#: company/models.py:422
msgid "Parameter value"
msgstr ""
-#: company/models.py:410 part/models.py:813 part/models.py:2165
+#: company/models.py:428 part/models.py:822 part/models.py:2194
#: part/templates/part/detail.html:106 part/templates/part/params.html:29
-#: templates/js/company.js:247
+#: templates/js/company.js:371
msgid "Units"
msgstr ""
-#: company/models.py:411
+#: company/models.py:429
msgid "Parameter units"
msgstr ""
-#: company/models.py:507 company/templates/company/detail.html:62
+#: company/models.py:529 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:189
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:256
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
#: part/bom.py:286 stock/templates/stock/item_base.html:369
-#: templates/js/company.js:48 templates/js/company.js:364
-#: templates/js/order.js:170
+#: templates/js/company.js:117 templates/js/company.js:489
+#: templates/js/order.js:232
msgid "Supplier"
msgstr ""
-#: company/models.py:508
+#: company/models.py:530
msgid "Select supplier"
msgstr ""
-#: company/models.py:513 company/templates/company/supplier_part_base.html:88
+#: company/models.py:535 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:153 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:180 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:514
+#: company/models.py:536
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:521
+#: company/models.py:543
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:527
+#: company/models.py:549
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:533
+#: company/models.py:555
msgid "Supplier part description"
msgstr ""
-#: company/models.py:538 company/templates/company/supplier_part_base.html:116
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2305
+#: company/models.py:560 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2342
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "base cost"
msgstr ""
-#: company/models.py:542 part/models.py:1606
+#: company/models.py:564 part/models.py:1615
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:544 company/templates/company/supplier_part_base.html:109
-#: stock/models.py:427 stock/templates/stock/item_base.html:310
-#: templates/js/stock.js:695
+#: company/models.py:566 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:435 stock/templates/stock/item_base.html:310
+#: templates/js/stock.js:709
msgid "Packaging"
msgstr ""
-#: company/models.py:544
+#: company/models.py:566
msgid "Part packaging"
msgstr ""
-#: company/models.py:546 part/models.py:1608
+#: company/models.py:568 part/models.py:1617
msgid "multiple"
msgstr ""
-#: company/models.py:546
+#: company/models.py:568
msgid "Order multiple"
msgstr ""
+#: company/serializers.py:68
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:69
+msgid "Currency Code"
+msgstr ""
+
#: company/templates/company/assigned_stock.html:10
#: company/templates/company/navbar.html:62
#: company/templates/company/navbar.html:65 templates/js/build.js:563
@@ -2199,7 +2215,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:102
msgid "Company"
msgstr ""
@@ -2213,7 +2229,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:313
+#: company/templates/company/company_base.html:46 templates/js/order.js:61
msgid "Create Purchase Order"
msgstr ""
@@ -2221,7 +2237,8 @@ msgstr ""
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56 company/views.py:326
+#: company/templates/company/company_base.html:56
+#: company/templates/company/company_base.html:126
msgid "Delete Company"
msgstr ""
@@ -2235,15 +2252,9 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/delete.html:7
-#, python-format
-msgid "Are you sure you want to delete company '%(name)s'?"
-msgstr ""
-
-#: company/templates/company/delete.html:12
-#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be deleted."
+#: company/templates/company/company_base.html:166
+#: part/templates/part/part_base.html:307
+msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:21
@@ -2258,11 +2269,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:460
-#: order/templates/order/sales_order_base.html:94 stock/models.py:445
-#: stock/models.py:446 stock/templates/stock/item_base.html:262
-#: templates/js/company.js:40 templates/js/order.js:267
-#: templates/js/stock.js:1097
+#: company/templates/company/detail.html:67 order/models.py:540
+#: order/templates/order/sales_order_base.html:94 stock/models.py:453
+#: stock/models.py:454 stock/templates/stock/item_base.html:262
+#: templates/js/company.js:109 templates/js/order.js:329
+#: templates/js/stock.js:1111
msgid "Customer"
msgstr ""
@@ -2283,6 +2294,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
#: company/templates/company/manufacturer_part_suppliers.html:20
+#: company/templates/company/manufacturer_part_suppliers.html:46
#: part/templates/part/category.html:131
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
@@ -2305,26 +2317,25 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:68
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:127
-#: templates/js/stock.js:1312
+#: templates/js/stock.js:1326
msgid "New Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:69
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:72
-#: company/views.py:71 part/templates/part/manufacturer.html:52
-#: part/templates/part/supplier.html:56
+#: company/templates/company/detail_manufacturer_part.html:74
+#: company/views.py:66 part/templates/part/manufacturer.html:52
+#: part/templates/part/supplier.html:55
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_manufacturer_part.html:73
-#: company/views.py:284
+#: company/templates/company/detail_manufacturer_part.html:75
msgid "Create new Manufacturer"
msgstr ""
@@ -2335,7 +2346,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:123 part/templates/part/category.html:137
-#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
+#: part/templates/part/stock.html:55 stock/templates/stock/location.html:163
msgid "Export"
msgstr ""
@@ -2347,26 +2358,24 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:44
-#: order/templates/order/purchase_order_detail.html:50
+#: part/templates/part/part_base.html:429
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1318
+#: part/templates/part/part_base.html:428 part/templates/part/supplier.html:17
+#: templates/js/stock.js:1332
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
-#: company/templates/company/manufacturer_part_suppliers.html:82
-#: company/views.py:64 order/templates/order/purchase_orders.html:185
-#: part/templates/part/supplier.html:50
+#: company/templates/company/manufacturer_part_suppliers.html:96
+#: company/views.py:60 part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
-#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:186
+#: company/templates/company/detail_supplier_part.html:73
msgid "Create new Supplier"
msgstr ""
@@ -2401,20 +2410,19 @@ msgstr ""
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:6
-msgid "Are you sure you want to delete the following Manufacturer Parts?"
+#: company/templates/company/manufacturer_part_base.html:125
+msgid "Edit Manufacturer Part"
msgstr ""
-#: company/templates/company/manufacturer_part_delete.html:36
-#, python-format
-msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
+#: company/templates/company/manufacturer_part_base.html:134
+msgid "Delete Manufacturer Part"
msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
#: company/templates/company/manufacturer_part_suppliers.html:10
-#: company/views.py:63 part/templates/part/navbar.html:87
-#: part/templates/part/navbar.html:90 templates/InvenTree/search.html:316
-#: templates/navbar.html:35
+#: company/views.py:59 part/templates/part/navbar.html:87
+#: part/templates/part/navbar.html:90 part/templates/part/prices.html:153
+#: templates/InvenTree/search.html:316 templates/navbar.html:35
msgid "Suppliers"
msgstr ""
@@ -2425,7 +2433,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:39 stock/api.py:54
+#: part/templates/part/navbar.html:39 stock/api.py:53
#: 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:128 templates/InvenTree/search.html:196
@@ -2451,9 +2459,11 @@ msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: company/templates/company/manufacturer_part_suppliers.html:142
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:191
+#: stock/views.py:855 templates/js/company.js:203 users/models.py:192
msgid "Delete"
msgstr ""
@@ -2471,11 +2481,27 @@ msgstr ""
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part_suppliers.html:83
+#: company/templates/company/manufacturer_part_suppliers.html:48
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:80
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:97
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
msgstr ""
+#: company/templates/company/manufacturer_part_suppliers.html:127
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:139
+msgid "Delete Parameters"
+msgstr ""
+
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
msgid "Manufactured Parts"
@@ -2492,8 +2518,8 @@ msgstr ""
#: stock/templates/stock/location.html:136
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
-#: templates/InvenTree/search.html:198 templates/js/stock.js:996
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2503,11 +2529,11 @@ msgstr ""
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: part/templates/part/navbar.html:101 part/templates/part/navbar.html:104
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:236
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:40 templates/navbar.html:46
-#: users/models.py:45
+#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2516,10 +2542,10 @@ msgstr ""
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/navbar.html:93 part/templates/part/navbar.html:96
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:213
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:37
-#: users/models.py:44
+#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2548,8 +2574,9 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:412
-#: stock/templates/stock/item_base.html:374 templates/js/company.js:380
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:420
+#: stock/templates/stock/item_base.html:374 templates/js/company.js:505
+#: templates/js/stock.js:690
msgid "Supplier Part"
msgstr ""
@@ -2594,459 +2621,401 @@ msgid "Order Part"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:11
+#: part/templates/part/navbar.html:74
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/sale_prices.html:17 part/views.py:2918
+#: company/templates/company/supplier_part_pricing.html:19
+#: company/templates/company/supplier_part_pricing.html:118
+#: part/templates/part/prices.html:264 part/views.py:2788
msgid "Add Price Break"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:38
-#: part/templates/part/sale_prices.html:46
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:89
-#: part/templates/part/sale_prices.html:97
+#: company/templates/company/supplier_part_pricing.html:52 part/views.py:2850
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:66 part/views.py:2836
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part_pricing.html:91
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:90
-#: part/templates/part/sale_prices.html:98
+#: company/templates/company/supplier_part_pricing.html:92
msgid "Delete price break"
msgstr ""
-#: company/views.py:70 part/templates/part/navbar.html:81
-#: part/templates/part/navbar.html:84 templates/InvenTree/search.html:306
-#: templates/navbar.html:36
+#: company/views.py:65 part/templates/part/navbar.html:81
+#: part/templates/part/navbar.html:84 part/templates/part/prices.html:157
+#: templates/InvenTree/search.html:306 templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
-#: company/views.py:77 templates/InvenTree/search.html:336
+#: company/views.py:71 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:187
+#: company/views.py:72
msgid "New Customer"
msgstr ""
-#: company/views.py:86
+#: company/views.py:79
msgid "Companies"
msgstr ""
-#: company/views.py:87
+#: company/views.py:80
msgid "New Company"
msgstr ""
-#: company/views.py:169 part/views.py:1115
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr ""
-#: company/views.py:198 part/views.py:1147
+#: company/views.py:190 part/views.py:1039
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:205 part/views.py:1154
+#: company/views.py:197 part/views.py:1046
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:214 part/views.py:1163
+#: company/views.py:206 part/views.py:1055
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: company/views.py:243
-msgid "Update Company Image"
-msgstr ""
-
-#: company/views.py:249
-msgid "Updated company image"
-msgstr ""
-
-#: company/views.py:259
-msgid "Edit Company"
-msgstr ""
-
-#: company/views.py:264
-msgid "Edited company information"
-msgstr ""
-
-#: company/views.py:287 order/templates/order/sales_orders.html:188
-msgid "Create new Customer"
-msgstr ""
-
-#: company/views.py:289
-msgid "Create new Company"
-msgstr ""
-
-#: company/views.py:316
-msgid "Created new company"
-msgstr ""
-
-#: company/views.py:332
-msgid "Company was deleted"
-msgstr ""
-
-#: company/views.py:357
-msgid "Edit Manufacturer Part"
-msgstr ""
-
-#: company/views.py:366
+#: company/views.py:251
msgid "Create New Manufacturer Part"
msgstr ""
-#: company/views.py:440
-msgid "Delete Manufacturer Part"
-msgstr ""
-
-#: company/views.py:514
-msgid "Add Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:548
-msgid "Edit Manufacturer Part Parameter"
-msgstr ""
-
-#: company/views.py:588
+#: company/views.py:334
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:639 templates/js/stock.js:1319
+#: company/views.py:385 templates/js/stock.js:1333
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:783
+#: company/views.py:529
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:860 part/views.py:2922
-msgid "Added new price break"
-msgstr ""
-
-#: company/views.py:916 part/views.py:2966
-msgid "Edit Price Break"
-msgstr ""
-
-#: company/views.py:931 part/views.py:2980
-msgid "Delete Price Break"
-msgstr ""
-
#: label/api.py:56 report/api.py:201
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:103
+#: label/models.py:104
msgid "Label name"
msgstr ""
-#: label/models.py:110
+#: label/models.py:111
msgid "Label description"
msgstr ""
-#: label/models.py:117 stock/forms.py:202
+#: label/models.py:118 stock/forms.py:169
msgid "Label"
msgstr ""
-#: label/models.py:118
+#: label/models.py:119
msgid "Label template file"
msgstr ""
-#: label/models.py:124 report/models.py:297
+#: label/models.py:125 report/models.py:297
msgid "Enabled"
msgstr ""
-#: label/models.py:125
+#: label/models.py:126
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Width [mm]"
msgstr ""
-#: label/models.py:131
+#: label/models.py:132
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Height [mm]"
msgstr ""
-#: label/models.py:138
+#: label/models.py:139
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:144 report/models.py:290
+#: label/models.py:145 report/models.py:290
msgid "Filename Pattern"
msgstr ""
-#: label/models.py:145
+#: label/models.py:146
msgid "Pattern for generating label filenames"
msgstr ""
-#: label/models.py:244 label/models.py:297
+#: label/models.py:249 label/models.py:306
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:245 label/models.py:298 report/models.py:317
+#: label/models.py:250 label/models.py:307 report/models.py:317
#: report/models.py:440 report/models.py:474
msgid "Filters"
msgstr ""
-#: order/forms.py:31 order/templates/order/order_base.html:47
+#: order/forms.py:30 order/templates/order/order_base.html:47
msgid "Place order"
msgstr ""
-#: order/forms.py:42 order/templates/order/order_base.html:54
+#: order/forms.py:41 order/templates/order/order_base.html:54
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:53 order/forms.py:64 order/templates/order/order_base.html:59
+#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:61
msgid "Cancel order"
msgstr ""
-#: order/forms.py:75 order/templates/order/sales_order_base.html:58
+#: order/forms.py:74 order/templates/order/sales_order_base.html:58
msgid "Ship order"
msgstr ""
-#: order/forms.py:90
+#: order/forms.py:89
msgid "Receive parts to this location"
msgstr ""
-#: order/forms.py:112
-msgid "Purchase Order reference"
-msgstr ""
-
-#: order/forms.py:119
-msgid "Target date for order delivery. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:147
-msgid "Enter sales order number"
-msgstr ""
-
-#: order/forms.py:154 order/models.py:472
-msgid "Target date for order completion. Order will be overdue after this date."
-msgstr ""
-
-#: order/forms.py:246
+#: order/forms.py:116
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:252
+#: order/forms.py:122
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:98
-msgid "Order reference"
-msgstr ""
-
-#: order/models.py:100
+#: order/models.py:154
msgid "Order description"
msgstr ""
-#: order/models.py:102
+#: order/models.py:156
msgid "Link to external page"
msgstr ""
-#: order/models.py:110 part/templates/part/detail.html:132
+#: order/models.py:164 part/templates/part/detail.html:132
msgid "Created By"
msgstr ""
-#: order/models.py:117
+#: order/models.py:171
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:176
msgid "Order notes"
msgstr ""
-#: order/models.py:181 order/models.py:465
+#: order/models.py:243 order/models.py:530
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:248 order/models.py:545
msgid "Purchase order status"
msgstr ""
-#: order/models.py:190
+#: order/models.py:257
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:193 order/templates/order/order_base.html:98
-#: templates/js/order.js:179
+#: order/models.py:260 order/templates/order/order_base.html:98
+#: templates/js/order.js:241
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:193
+#: order/models.py:260
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:200
+#: order/models.py:267
msgid "received by"
msgstr ""
-#: order/models.py:205
+#: order/models.py:272
msgid "Issue Date"
msgstr ""
-#: order/models.py:206
+#: order/models.py:273
msgid "Date order was issued"
msgstr ""
-#: order/models.py:211
+#: order/models.py:278
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:212
+#: order/models.py:279
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:218
+#: order/models.py:285
msgid "Date order was completed"
msgstr ""
-#: order/models.py:242 part/views.py:1853 stock/models.py:300
-#: stock/models.py:1015
+#: order/models.py:309 part/views.py:1730 stock/models.py:308
+#: stock/models.py:1023
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:247
+#: order/models.py:314
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:345
+#: order/models.py:412
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:349
+#: order/models.py:416
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:351
+#: order/models.py:418
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:461
+#: order/models.py:541
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer Reference "
msgstr ""
-#: order/models.py:467
+#: order/models.py:547
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:475 templates/js/order.js:303
+#: order/models.py:552
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:555 templates/js/order.js:370
msgid "Shipment Date"
msgstr ""
-#: order/models.py:482
+#: order/models.py:562
msgid "shipped by"
msgstr ""
-#: order/models.py:526
+#: order/models.py:606
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:613
+#: order/models.py:703
msgid "Item quantity"
msgstr ""
-#: order/models.py:615
+#: order/models.py:709
msgid "Line item reference"
msgstr ""
-#: order/models.py:617
+#: order/models.py:711
msgid "Line item notes"
msgstr ""
-#: order/models.py:643 order/models.py:710 templates/js/order.js:353
+#: order/models.py:741 order/models.py:812 templates/js/order.js:420
msgid "Order"
msgstr ""
-#: order/models.py:644 order/templates/order/order_base.html:9
+#: order/models.py:742 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:324 templates/js/order.js:148
-#: templates/js/stock.js:669 templates/js/stock.js:1078
+#: stock/templates/stock/item_base.html:324 templates/js/order.js:210
+#: templates/js/stock.js:669 templates/js/stock.js:1092
msgid "Purchase Order"
msgstr ""
-#: order/models.py:658
+#: order/models.py:756
msgid "Supplier part"
msgstr ""
-#: order/models.py:661 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:219
+#: order/models.py:759 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:246
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:133
msgid "Received"
msgstr ""
-#: order/models.py:661
+#: order/models.py:759
msgid "Number of items received"
msgstr ""
-#: order/models.py:667 stock/models.py:537
-#: stock/templates/stock/item_base.html:331 templates/js/stock.js:690
+#: order/models.py:765 part/templates/part/prices.html:166 stock/models.py:545
+#: stock/templates/stock/item_base.html:331 templates/js/stock.js:704
msgid "Purchase Price"
msgstr ""
-#: order/models.py:668
+#: order/models.py:766
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:676
+#: order/models.py:774
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:718 part/templates/part/navbar.html:110
-#: part/templates/part/order_prices.html:108
-#: part/templates/part/part_pricing.html:97
+#: order/models.py:820 part/templates/part/part_pricing.html:97
+#: part/templates/part/prices.html:103 part/templates/part/prices.html:278
msgid "Sale Price"
msgstr ""
-#: order/models.py:719
+#: order/models.py:821
msgid "Unit sale price"
msgstr ""
-#: order/models.py:794 order/models.py:796
+#: order/models.py:900 order/models.py:902
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:800
+#: order/models.py:906
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:802
+#: order/models.py:908
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:805
+#: order/models.py:911
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:815
+#: order/models.py:921
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:820
+#: order/models.py:926
msgid "Line"
msgstr ""
-#: order/models.py:831
+#: order/models.py:937
msgid "Item"
msgstr ""
-#: order/models.py:832
+#: order/models.py:938
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:835
+#: order/models.py:941
msgid "Enter stock allocation quantity"
msgstr ""
+#: order/serializers.py:139
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:359
+msgid "Sale price currency"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
#: templates/attachment_delete.html:5
@@ -3091,16 +3060,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:180
-#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/order_base.html:188
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:199
+#: order/templates/order/purchase_order_detail.html:127
#: part/templates/part/category.html:217 part/templates/part/category.html:259
-#: stock/templates/stock/location.html:191 templates/js/stock.js:736
-#: templates/js/stock.js:1324
+#: part/templates/part/part_base.html:415
+#: stock/templates/stock/location.html:191 templates/js/stock.js:750
+#: templates/js/stock.js:1338
msgid "New Location"
msgstr ""
-#: order/templates/order/order_base.html:181
-#: order/templates/order/purchase_order_detail.html:101
+#: order/templates/order/order_base.html:200
+#: order/templates/order/purchase_order_detail.html:128
+#: part/templates/part/part_base.html:416
#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3253,7 +3228,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/order.js:205 templates/js/order.js:308
+#: templates/js/order.js:267 templates/js/order.js:375
msgid "Items"
msgstr ""
@@ -3277,7 +3252,6 @@ msgid "Purchase Order Attachments"
msgstr ""
#: order/templates/order/po_lineitem_delete.html:5
-#: order/templates/order/so_lineitem_delete.html:5
msgid "Are you sure you wish to delete this line item?"
msgstr ""
@@ -3295,40 +3269,52 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1327
-#: order/views.py:1410
+#: order/templates/order/purchase_order_detail.html:64
+#: order/templates/order/sales_order_detail.html:22
+#: order/templates/order/sales_order_detail.html:56
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:114
+#: order/templates/order/purchase_order_detail.html:100
+#: order/templates/order/sales_order_detail.html:398
+msgid "Edit Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:110
+#: order/templates/order/sales_order_detail.html:408
+msgid "Delete Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:141
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:223
+#: order/templates/order/purchase_order_detail.html:169
+#: order/templates/order/sales_order_detail.html:233
msgid "Total"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:191
-#: order/templates/order/sales_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:218
+#: order/templates/order/sales_order_detail.html:256 templates/js/part.js:807
+#: templates/js/part.js:996
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:198
-#: order/templates/order/sales_order_detail.html:253
+#: order/templates/order/purchase_order_detail.html:225
+#: order/templates/order/sales_order_detail.html:263
msgid "Total price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:255
-#: order/templates/order/sales_order_detail.html:359
+#: order/templates/order/purchase_order_detail.html:282
+#: order/templates/order/sales_order_detail.html:369
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:256
+#: order/templates/order/purchase_order_detail.html:283
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:261
+#: order/templates/order/purchase_order_detail.html:288
msgid "Receive line item"
msgstr ""
@@ -3343,7 +3329,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:45
-#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/models.py:326 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:157
#: part/templates/part/category_navbar.html:25
#: part/templates/part/category_navbar.html:32
@@ -3351,7 +3337,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:666
#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:40
+#: users/models.py:41
msgid "Parts"
msgstr ""
@@ -3393,10 +3379,14 @@ msgstr ""
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100 templates/js/order.js:275
+#: order/templates/order/sales_order_base.html:100 templates/js/order.js:342
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_base.html:177
+msgid "Edit Sales Order"
+msgstr ""
+
#: order/templates/order/sales_order_cancel.html:8
#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
@@ -3412,69 +3402,69 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:358
+#: order/templates/order/sales_order_detail.html:105 templates/js/bom.js:358
#: templates/js/build.js:725 templates/js/build.js:1142
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:611
+#: order/templates/order/sales_order_detail.html:112 templates/js/build.js:611
#: templates/js/build.js:947
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:613
+#: order/templates/order/sales_order_detail.html:113 templates/js/build.js:613
#: templates/js/build.js:948
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:176
+#: order/templates/order/sales_order_detail.html:186
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:206
+#: order/templates/order/sales_order_detail.html:216
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:274 templates/js/build.js:676
+#: order/templates/order/sales_order_detail.html:284 templates/js/build.js:676
#: templates/js/build.js:943
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:276
+#: order/templates/order/sales_order_detail.html:286
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:313
+#: order/templates/order/sales_order_detail.html:323
msgid "PO"
msgstr ""
-#: order/templates/order/sales_order_detail.html:343
+#: order/templates/order/sales_order_detail.html:353
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:346 templates/js/build.js:739
+#: order/templates/order/sales_order_detail.html:356 templates/js/build.js:739
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:349
+#: order/templates/order/sales_order_detail.html:359
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:353 templates/js/build.js:732
+#: order/templates/order/sales_order_detail.html:363 templates/js/build.js:732
#: templates/js/build.js:1150
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:356
-#: order/templates/order/sales_order_detail.html:465
+#: order/templates/order/sales_order_detail.html:366
+#: order/templates/order/sales_order_detail.html:485
msgid "Calculate price"
msgstr ""
-#: order/templates/order/sales_order_detail.html:360
+#: order/templates/order/sales_order_detail.html:370
msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:471
+#: order/templates/order/sales_order_detail.html:491
msgid "Update Unit Price"
msgstr ""
@@ -3515,194 +3505,154 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:106
-msgid "Add Purchase Order Attachment"
-msgstr ""
-
-#: order/views.py:156
-msgid "Add Sales Order Attachment"
-msgstr ""
-
-#: order/views.py:348
-msgid "Create Sales Order"
-msgstr ""
-
-#: order/views.py:383
-msgid "Edit Purchase Order"
-msgstr ""
-
-#: order/views.py:403
-msgid "Edit Sales Order"
-msgstr ""
-
-#: order/views.py:419
+#: order/views.py:151
msgid "Cancel Order"
msgstr ""
-#: order/views.py:428 order/views.py:454
+#: order/views.py:160 order/views.py:186
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:431 order/views.py:457
+#: order/views.py:163 order/views.py:189
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:445
+#: order/views.py:177
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:471
+#: order/views.py:203
msgid "Issue Order"
msgstr ""
-#: order/views.py:480
+#: order/views.py:212
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:490
+#: order/views.py:222
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:501
+#: order/views.py:233
msgid "Complete Order"
msgstr ""
-#: order/views.py:517
+#: order/views.py:249
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:528
+#: order/views.py:260
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:538
+#: order/views.py:270
msgid "Ship Order"
msgstr ""
-#: order/views.py:554
+#: order/views.py:286
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:560
+#: order/views.py:292
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:339
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:804
+#: order/views.py:536
msgid "Receive Parts"
msgstr ""
-#: order/views.py:874
+#: order/views.py:606
msgid "Items received"
msgstr ""
-#: order/views.py:888
+#: order/views.py:620
msgid "No destination set"
msgstr ""
-#: order/views.py:933
+#: order/views.py:665
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:939
+#: order/views.py:671
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:945
+#: order/views.py:677
msgid "No lines specified"
msgstr ""
-#: order/views.py:1018
+#: order/views.py:750
msgid "Update prices"
msgstr ""
-#: order/views.py:1276
+#: order/views.py:1008
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1336
-msgid "Supplier part must be specified"
-msgstr ""
-
-#: order/views.py:1342
-msgid "Supplier must match for Part and Order"
-msgstr ""
-
-#: order/views.py:1473 order/views.py:1491
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/views.py:1507 order/views.py:1519
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/views.py:1512 order/views.py:1524
-msgid "Deleted line item"
-msgstr ""
-
-#: order/views.py:1537
+#: order/views.py:1061
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1582
+#: order/views.py:1106
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1598
+#: order/views.py:1122
msgid "Select line item"
msgstr ""
-#: order/views.py:1629
+#: order/views.py:1153
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1639
+#: order/views.py:1163
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1647
+#: order/views.py:1171
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1701
+#: order/views.py:1225
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1775
+#: order/views.py:1299
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1790
+#: order/views.py:1314
msgid "Remove allocation"
msgstr ""
-#: order/views.py:1862
+#: order/views.py:1386
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1868
+#: order/views.py:1392
msgid "Price not found"
msgstr ""
-#: order/views.py:1871
+#: order/views.py:1395
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1876
+#: order/views.py:1400
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:138 part/models.py:72 part/models.py:747
+#: part/bom.py:138 part/models.py:72 part/models.py:756
#: part/templates/part/category.html:75 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
@@ -3724,143 +3674,143 @@ msgstr ""
msgid "Error reading BOM file (incorrect row size)"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "File Format"
msgstr ""
-#: part/forms.py:89 stock/forms.py:265
+#: part/forms.py:73 stock/forms.py:232
msgid "Select output file format"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Cascading"
msgstr ""
-#: part/forms.py:91
+#: part/forms.py:75
msgid "Download cascading / multi-level BOM"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Levels"
msgstr ""
-#: part/forms.py:93
+#: part/forms.py:77
msgid "Select maximum number of BOM levels to export (0 = all levels)"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include Parameter Data"
msgstr ""
-#: part/forms.py:95
+#: part/forms.py:79
msgid "Include part parameters data in exported BOM"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include Stock Data"
msgstr ""
-#: part/forms.py:97
+#: part/forms.py:81
msgid "Include part stock data in exported BOM"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include Manufacturer Data"
msgstr ""
-#: part/forms.py:99
+#: part/forms.py:83
msgid "Include part manufacturer data in exported BOM"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include Supplier Data"
msgstr ""
-#: part/forms.py:101
+#: part/forms.py:85
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2191
+#: part/forms.py:106 part/models.py:2224
msgid "Parent Part"
msgstr ""
-#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:107 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr ""
-#: part/forms.py:129
+#: part/forms.py:113
msgid "Clear existing BOM items"
msgstr ""
-#: part/forms.py:135
+#: part/forms.py:119
msgid "Confirm BOM duplication"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "validate"
msgstr ""
-#: part/forms.py:153
+#: part/forms.py:137
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "BOM file"
msgstr ""
-#: part/forms.py:165
+#: part/forms.py:149
msgid "Select BOM file to upload"
msgstr ""
-#: part/forms.py:184
+#: part/forms.py:168
msgid "Related Part"
msgstr ""
-#: part/forms.py:203
+#: part/forms.py:175
msgid "Select part category"
msgstr ""
-#: part/forms.py:220
+#: part/forms.py:192
msgid "Duplicate all BOM data for this part"
msgstr ""
-#: part/forms.py:221
+#: part/forms.py:193
msgid "Copy BOM"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:198
msgid "Duplicate all parameter data for this part"
msgstr ""
-#: part/forms.py:227
+#: part/forms.py:199
msgid "Copy Parameters"
msgstr ""
-#: part/forms.py:232
+#: part/forms.py:204
msgid "Confirm part creation"
msgstr ""
-#: part/forms.py:237
+#: part/forms.py:209
msgid "Include category parameter templates"
msgstr ""
-#: part/forms.py:242
+#: part/forms.py:214
msgid "Include parent categories parameter templates"
msgstr ""
-#: part/forms.py:322
+#: part/forms.py:294
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:298
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2286
+#: part/forms.py:316 part/models.py:2323
msgid "Sub part"
msgstr ""
-#: part/forms.py:373
+#: part/forms.py:345
msgid "Input quantity for price calculation"
msgstr ""
@@ -3876,362 +3826,362 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2237
+#: part/models.py:86 part/models.py:2270
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:32
+#: part/models.py:87 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:39
+#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:448 part/models.py:460
+#: part/models.py:457 part/models.py:469
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:557
+#: part/models.py:566
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:561
+#: part/models.py:570
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:566
+#: part/models.py:575
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:645
+#: part/models.py:654
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:670 part/templates/part/detail.html:22
+#: part/models.py:679 part/templates/part/detail.html:22
msgid "Part name"
msgstr ""
-#: part/models.py:677
+#: part/models.py:686
msgid "Is Template"
msgstr ""
-#: part/models.py:678
+#: part/models.py:687
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:689
+#: part/models.py:698
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:690 part/templates/part/detail.html:60
+#: part/models.py:699 part/templates/part/detail.html:60
msgid "Variant Of"
msgstr ""
-#: part/models.py:696
+#: part/models.py:705
msgid "Part description"
msgstr ""
-#: part/models.py:701 part/templates/part/category.html:82
+#: part/models.py:710 part/templates/part/category.html:82
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
-#: part/models.py:702
+#: part/models.py:711
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:709 part/models.py:2236 part/templates/part/detail.html:73
+#: part/models.py:718 part/models.py:2269 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:452
msgid "Category"
msgstr ""
-#: part/models.py:710
+#: part/models.py:719
msgid "Part category"
msgstr ""
-#: part/models.py:715 part/templates/part/detail.html:28
+#: part/models.py:724 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:87 templates/js/part.js:169
#: templates/js/part.js:296
msgid "IPN"
msgstr ""
-#: part/models.py:716
+#: part/models.py:725
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:722
+#: part/models.py:731
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:723 part/templates/part/detail.html:35 report/models.py:199
+#: part/models.py:732 part/templates/part/detail.html:35 report/models.py:199
#: templates/js/part.js:173
msgid "Revision"
msgstr ""
-#: part/models.py:745
+#: part/models.py:754
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:792 part/templates/part/detail.html:97
+#: part/models.py:801 part/templates/part/detail.html:97
msgid "Default Supplier"
msgstr ""
-#: part/models.py:793
+#: part/models.py:802
msgid "Default supplier part"
msgstr ""
-#: part/models.py:800
+#: part/models.py:809
msgid "Default Expiry"
msgstr ""
-#: part/models.py:801
+#: part/models.py:810
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:806 part/templates/part/detail.html:113
+#: part/models.py:815 part/templates/part/detail.html:113
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:807
+#: part/models.py:816
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:814
+#: part/models.py:823
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:820
+#: part/models.py:829
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:835
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:832
+#: part/models.py:841
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:837
+#: part/models.py:846
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:842
+#: part/models.py:851
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:846 part/templates/part/detail.html:227
+#: part/models.py:855 part/templates/part/detail.html:227
#: templates/js/table_filters.js:21 templates/js/table_filters.js:65
-#: templates/js/table_filters.js:241 templates/js/table_filters.js:310
+#: templates/js/table_filters.js:246 templates/js/table_filters.js:315
msgid "Active"
msgstr ""
-#: part/models.py:847
+#: part/models.py:856
msgid "Is this part active?"
msgstr ""
-#: part/models.py:852
+#: part/models.py:861
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:857
+#: part/models.py:866
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "BOM checksum"
msgstr ""
-#: part/models.py:860
+#: part/models.py:869
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:863
+#: part/models.py:872
msgid "BOM checked by"
msgstr ""
-#: part/models.py:865
+#: part/models.py:874
msgid "BOM checked date"
msgstr ""
-#: part/models.py:869
+#: part/models.py:878
msgid "Creation User"
msgstr ""
-#: part/models.py:1608
+#: part/models.py:1617
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2063
+#: part/models.py:2088
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2080
+#: part/models.py:2105
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2100 templates/js/part.js:717 templates/js/stock.js:117
+#: part/models.py:2125 templates/js/part.js:717 templates/js/stock.js:117
msgid "Test Name"
msgstr ""
-#: part/models.py:2101
+#: part/models.py:2126
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2106
+#: part/models.py:2131
msgid "Test Description"
msgstr ""
-#: part/models.py:2107
+#: part/models.py:2132
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2112 templates/js/part.js:726
-#: templates/js/table_filters.js:227
+#: part/models.py:2137 templates/js/part.js:726
+#: templates/js/table_filters.js:232
msgid "Required"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2138
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2118 templates/js/part.js:734
+#: part/models.py:2143 templates/js/part.js:734
msgid "Requires Value"
msgstr ""
-#: part/models.py:2119
+#: part/models.py:2144
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2124 templates/js/part.js:741
+#: part/models.py:2149 templates/js/part.js:741
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2150
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2187
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2192
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2165
+#: part/models.py:2194
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2193 part/models.py:2242 part/models.py:2243
+#: part/models.py:2226 part/models.py:2275 part/models.py:2276
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Data"
msgstr ""
-#: part/models.py:2195
+#: part/models.py:2228
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2247 templates/InvenTree/settings/category.html:67
+#: part/models.py:2280 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2281
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2278
+#: part/models.py:2315
msgid "Select parent part"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2324
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2293
+#: part/models.py:2330
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2295 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2332 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2295
+#: part/models.py:2332
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2298
+#: part/models.py:2335
msgid "Overage"
msgstr ""
-#: part/models.py:2299
+#: part/models.py:2336
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2302
+#: part/models.py:2339
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2305
+#: part/models.py:2342
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "Checksum"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2344
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2311 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2348 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2312
+#: part/models.py:2349
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2317 templates/js/bom.js:287
+#: part/models.py:2354 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2318
+#: part/models.py:2355
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2394 part/views.py:1859 part/views.py:1911
-#: stock/models.py:290
+#: part/models.py:2431 part/views.py:1736 part/views.py:1788
+#: stock/models.py:298
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2403 part/models.py:2405
+#: part/models.py:2440 part/models.py:2442
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2445
msgid "BOM Item"
msgstr ""
-#: part/models.py:2527
+#: part/models.py:2564
msgid "Part 1"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Part 2"
msgstr ""
-#: part/models.py:2531
+#: part/models.py:2568
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2563
+#: part/models.py:2600
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4247,14 +4197,6 @@ msgstr ""
msgid "Part Attachments"
msgstr ""
-#: part/templates/part/bom-delete.html:6
-msgid "Are you sure you want to delete this BOM item?"
-msgstr ""
-
-#: part/templates/part/bom-delete.html:8
-msgid "Deleting this entry will remove the BOM row from the following part"
-msgstr ""
-
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:51
#: part/templates/part/navbar.html:54
msgid "Bill of Materials"
@@ -4303,7 +4245,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:2154
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr ""
@@ -4319,8 +4261,8 @@ msgstr ""
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/bom.html:160 part/views.py:590
-#: templates/js/stock.js:1313
+#: part/templates/part/bom.html:160 part/views.py:450
+#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr ""
@@ -4401,7 +4343,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:2564
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr ""
@@ -4461,11 +4403,12 @@ msgid "View grid display"
msgstr ""
#: part/templates/part/category.html:218
-#: stock/templates/stock/location.html:192 templates/js/stock.js:737
+#: stock/templates/stock/location.html:192 templates/js/stock.js:751
msgid "Create new location"
msgstr ""
#: part/templates/part/category.html:223 part/templates/part/category.html:253
+#: part/templates/part/part_base.html:378
msgid "New Category"
msgstr ""
@@ -4477,10 +4420,18 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:260 stock/views.py:1391
+#: part/templates/part/category.html:260 stock/views.py:1223
msgid "Create new Stock Location"
msgstr ""
+#: part/templates/part/category.html:279
+msgid "Select parent category"
+msgstr ""
+
+#: part/templates/part/category.html:286 part/views.py:2389
+msgid "Edit Part Category"
+msgstr ""
+
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4526,7 +4477,7 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:466
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr ""
@@ -4639,36 +4590,6 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/internal_prices.html:11
-#: part/templates/part/navbar.html:101
-msgid "Internal Price Information"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:19 part/views.py:2989
-msgid "Add Internal Price Break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:28 templates/403.html:5
-#: templates/403.html:11
-msgid "Permission Denied"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:31 templates/403.html:14
-msgid "You do not have permission to view this page."
-msgstr ""
-
-#: part/templates/part/internal_prices.html:59
-msgid "No internal price break information found"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:110
-msgid "Edit internal price break"
-msgstr ""
-
-#: part/templates/part/internal_prices.html:111
-msgid "Delete internal price break"
-msgstr ""
-
#: part/templates/part/manufacturer.html:11
msgid "Part Manufacturers"
msgstr ""
@@ -4678,7 +4599,7 @@ msgid "Delete manufacturer parts"
msgstr ""
#: part/templates/part/manufacturer.html:53
-#: part/templates/part/supplier.html:57
+#: part/templates/part/supplier.html:56
msgid "Create new manufacturer"
msgstr ""
@@ -4702,125 +4623,27 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:75 part/templates/part/order_prices.html:12
-msgid "Order Price Information"
+#: part/templates/part/navbar.html:77
+msgid "Prices"
msgstr ""
-#: part/templates/part/navbar.html:78
-msgid "Order Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:104 part/templates/part/order_prices.html:94
-#: part/templates/part/part_pricing.html:82
-msgid "Internal Price"
-msgstr ""
-
-#: part/templates/part/navbar.html:107
-msgid "Sales Price Information"
-msgstr ""
-
-#: part/templates/part/navbar.html:121 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:109 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:124 stock/templates/stock/item_base.html:414
+#: part/templates/part/navbar.html:112 stock/templates/stock/item_base.html:414
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:129 part/templates/part/navbar.html:132
+#: part/templates/part/navbar.html:117 part/templates/part/navbar.html:120
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:142 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:130 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
-#: part/templates/part/order_prices.html:25
-#: part/templates/part/part_base.html:282
-msgid "Calculate"
-msgstr ""
-
-#: part/templates/part/order_prices.html:32
-msgid "Pricing ranges"
-msgstr ""
-
-#: part/templates/part/order_prices.html:37
-#: part/templates/part/part_pricing.html:22
-msgid "Supplier Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:38
-#: part/templates/part/order_prices.html:63
-#: part/templates/part/order_prices.html:95
-#: part/templates/part/order_prices.html:109
-#: part/templates/part/part_pricing.html:26
-#: part/templates/part/part_pricing.html:52
-#: part/templates/part/part_pricing.html:85
-#: part/templates/part/part_pricing.html:100
-msgid "Unit Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:45
-#: part/templates/part/order_prices.html:70
-#: part/templates/part/order_prices.html:100
-#: part/templates/part/order_prices.html:114
-#: part/templates/part/part_pricing.html:32
-#: part/templates/part/part_pricing.html:58
-#: part/templates/part/part_pricing.html:89
-#: part/templates/part/part_pricing.html:104
-msgid "Total Cost"
-msgstr ""
-
-#: part/templates/part/order_prices.html:53
-#: part/templates/part/part_pricing.html:40
-msgid "No supplier pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:62
-#: part/templates/part/order_prices.html:129
-#: part/templates/part/part_pricing.html:48
-msgid "BOM Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:78
-#: part/templates/part/part_pricing.html:66
-msgid "Note: BOM pricing is incomplete for this part"
-msgstr ""
-
-#: part/templates/part/order_prices.html:85
-#: part/templates/part/part_pricing.html:73
-msgid "No BOM pricing available"
-msgstr ""
-
-#: part/templates/part/order_prices.html:123
-#: part/templates/part/part_pricing.html:113
-msgid "No pricing information is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:139
-msgid "Stock Pricing"
-msgstr ""
-
-#: part/templates/part/order_prices.html:147
-msgid "No stock pricing history is available for this part."
-msgstr ""
-
-#: part/templates/part/order_prices.html:166
-#, python-format
-msgid "Single Price - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:178
-#, python-format
-msgid "Single Price Difference - %(currency)s"
-msgstr ""
-
-#: part/templates/part/order_prices.html:190
-#, python-format
-msgid "Part Single Price - %(currency)s"
-msgstr ""
-
#: part/templates/part/params.html:17
msgid "Add new parameter"
msgstr ""
@@ -4841,8 +4664,8 @@ msgstr ""
msgid "Part List"
msgstr ""
-#: part/templates/part/part_base.html:26 templates/js/company.js:156
-#: templates/js/company.js:355 templates/js/part.js:84 templates/js/part.js:161
+#: part/templates/part/part_base.html:26 templates/js/company.js:280
+#: templates/js/company.js:480 templates/js/part.js:84 templates/js/part.js:161
msgid "Inactive"
msgstr ""
@@ -4905,7 +4728,7 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:131
+#: part/templates/part/part_base.html:143 templates/InvenTree/index.html:132
msgid "Required for Build Orders"
msgstr ""
@@ -4926,10 +4749,86 @@ msgstr ""
msgid "Building"
msgstr ""
+#: part/templates/part/part_base.html:285 part/templates/part/prices.html:131
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:379
+msgid "Create New Part Category"
+msgstr ""
+
+#: part/templates/part/part_base.html:387
+msgid "New Parent"
+msgstr ""
+
+#: part/templates/part/part_base.html:435
+msgid "Edit Part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:27
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:31
+#: part/templates/part/prices.html:58 part/templates/part/prices.html:90
+#: part/templates/part/prices.html:107
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:89
+#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:38
+#: part/templates/part/prices.html:65 part/templates/part/prices.html:95
+#: part/templates/part/prices.html:112
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:46
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:55
+#: part/templates/part/prices.html:235
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:73
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:80
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:89
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:113
+#: part/templates/part/prices.html:121
+msgid "No pricing information is available for this part."
+msgstr ""
+
#: part/templates/part/part_tests.html:17
msgid "Add Test Template"
msgstr ""
+#: part/templates/part/part_tests.html:61
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:79
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: part/templates/part/part_tests.html:91
+msgid "Delete Test Result Template"
+msgstr ""
+
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr ""
@@ -4964,12 +4863,98 @@ msgstr ""
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
-#: part/templates/part/related.html:18
-msgid "Add Related"
+#: part/templates/part/prices.html:12
+msgid "General Price Information"
msgstr ""
-#: part/templates/part/sale_prices.html:10
-msgid "Sell Price Information"
+#: part/templates/part/prices.html:22
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:28
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:29
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:56
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:104
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:105
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:127
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:146
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:147 part/templates/part/prices.html:167
+#: part/templates/part/prices.html:193 part/templates/part/prices.html:224
+#: part/templates/part/prices.html:251 part/templates/part/prices.html:279
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:172
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:180
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:192
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:206 part/views.py:2859
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:223
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:250
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:290
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:340
+#, python-format
+msgid "Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:352
+#, python-format
+msgid "Single Price Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:364
+#, python-format
+msgid "Part Single Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/prices.html:464
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/related.html:18
+msgid "Add Related"
msgstr ""
#: part/templates/part/sales_orders.html:18
@@ -5043,216 +5028,180 @@ msgstr ""
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:164
-msgid "Add part attachment"
-msgstr ""
-
-#: part/views.py:217 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr ""
-
-#: part/views.py:221
-msgid "Part attachment updated"
-msgstr ""
-
-#: part/views.py:236
-msgid "Delete Part Attachment"
-msgstr ""
-
-#: part/views.py:244
-msgid "Deleted part attachment"
-msgstr ""
-
-#: part/views.py:253
-msgid "Create Test Template"
-msgstr ""
-
-#: part/views.py:280
-msgid "Edit Test Template"
-msgstr ""
-
-#: part/views.py:294
-msgid "Delete Test Template"
-msgstr ""
-
-#: part/views.py:301
+#: part/views.py:161
msgid "Set Part Category"
msgstr ""
-#: part/views.py:351
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:386
+#: part/views.py:246
msgid "Create Variant"
msgstr ""
-#: part/views.py:471
+#: part/views.py:331
msgid "Copied part"
msgstr ""
-#: part/views.py:525 part/views.py:663
+#: part/views.py:385 part/views.py:523
msgid "Possible matches exist - confirm creation of new part"
msgstr ""
-#: part/views.py:595
+#: part/views.py:455
msgid "Created new part"
msgstr ""
-#: part/views.py:763
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1092
+#: part/views.py:925
+msgid "None"
+msgstr ""
+
+#: part/views.py:984
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1194
-msgid "Upload Part Image"
-msgstr ""
-
-#: part/views.py:1200 part/views.py:1235
-msgid "Updated part image"
-msgstr ""
-
-#: part/views.py:1209
+#: part/views.py:1086
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1238
+#: part/views.py:1112
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:1115
msgid "Part image not found"
msgstr ""
-#: part/views.py:1249
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:1284
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1314
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1335
+#: part/views.py:1212
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1356
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1367
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1501
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1862
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1887 part/views.py:1890
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr ""
-#: part/views.py:1896
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1934
+#: part/views.py:1811
msgid "Select a part"
msgstr ""
-#: part/views.py:1940
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr ""
-#: part/views.py:1944
+#: part/views.py:1821
msgid "Specify quantity"
msgstr ""
-#: part/views.py:2206
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:2213
+#: part/views.py:2090
msgid "Part was deleted"
msgstr ""
-#: part/views.py:2222
+#: part/views.py:2099
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2363
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2373
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2380
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2388
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2438
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2452
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2512
-msgid "Edit Part Category"
-msgstr ""
-
-#: part/views.py:2550
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2556
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2608
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2709
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2765
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2784
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2854
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2910
-msgid "Confim BOM item deletion"
+#: part/views.py:2792
+msgid "Added new price break"
msgstr ""
-#: part/views.py:2998
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3006
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5358,17 +5307,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1739
+#: stock/models.py:1759
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1745
+#: stock/models.py:1765
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:1012
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr ""
@@ -5380,287 +5329,287 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:212
+#: stock/api.py:211
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:281
+#: stock/api.py:280
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:418 stock/models.py:505
+#: stock/forms.py:81 stock/forms.py:385 stock/models.py:513
#: stock/templates/stock/item_base.html:381 templates/js/stock.js:658
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:419
+#: stock/forms.py:82 stock/forms.py:386
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:118
+#: stock/forms.py:85
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:169
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:171
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:173 stock/forms.py:349
+#: stock/forms.py:140 stock/forms.py:316
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:203 stock/forms.py:259
+#: stock/forms.py:170 stock/forms.py:226
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:75
+#: stock/forms.py:234 templates/js/table_filters.js:75
#: templates/js/table_filters.js:138
msgid "Include sublocations"
msgstr ""
-#: stock/forms.py:267
+#: stock/forms.py:234
msgid "Include stock items in sub locations"
msgstr ""
-#: stock/forms.py:302
+#: stock/forms.py:269
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:309
+#: stock/forms.py:276
msgid "Stock quantity to assign"
msgstr ""
-#: stock/forms.py:337
+#: stock/forms.py:304
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:347
+#: stock/forms.py:314
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:351
+#: stock/forms.py:318
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/forms.py:375
+#: stock/forms.py:342
msgid "Destination stock location"
msgstr ""
-#: stock/forms.py:377
+#: stock/forms.py:344
msgid "Add note (required)"
msgstr ""
-#: stock/forms.py:381 stock/views.py:852 stock/views.py:1051
+#: stock/forms.py:348 stock/views.py:705 stock/views.py:904
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/forms.py:381
+#: stock/forms.py:348
msgid "Confirm movement of stock items"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set Default Location"
msgstr ""
-#: stock/forms.py:383
+#: stock/forms.py:350
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:52 stock/models.py:542
+#: stock/models.py:56 stock/models.py:550
msgid "Owner"
msgstr ""
-#: stock/models.py:53 stock/models.py:543
+#: stock/models.py:57 stock/models.py:551
msgid "Select Owner"
msgstr ""
-#: stock/models.py:271
+#: stock/models.py:279
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:307
+#: stock/models.py:315
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:317 stock/models.py:326
+#: stock/models.py:325 stock/models.py:334
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:318
+#: stock/models.py:326
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:340
+#: stock/models.py:348
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:346
+#: stock/models.py:354
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:361
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:395
+#: stock/models.py:403
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:412
msgid "Base part"
msgstr ""
-#: stock/models.py:413
+#: stock/models.py:421
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:418 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:426 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:421
+#: stock/models.py:429
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:428
+#: stock/models.py:436
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:433 stock/templates/stock/item_base.html:270
+#: stock/models.py:441 stock/templates/stock/item_base.html:270
msgid "Installed In"
msgstr ""
-#: stock/models.py:436
+#: stock/models.py:444
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:452
+#: stock/models.py:460
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:472
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:468
+#: stock/models.py:476
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:477
+#: stock/models.py:485
msgid "Source Build"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:487
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:490
+#: stock/models.py:498
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:493
+#: stock/models.py:501
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:499
+#: stock/models.py:507
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:514
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:527
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:529 stock/templates/stock/item_notes.html:13
+#: stock/models.py:537 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:538
+#: stock/models.py:546
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1006
+#: stock/models.py:1014
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1012
+#: stock/models.py:1020
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1018
+#: stock/models.py:1026
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1021
+#: stock/models.py:1029
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1024
+#: stock/models.py:1032
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1031
+#: stock/models.py:1039
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1197
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1679
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1716
+#: stock/models.py:1736
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1722
+#: stock/models.py:1742
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1740
+#: stock/models.py:1760
msgid "Test name"
msgstr ""
-#: stock/models.py:1746 templates/js/table_filters.js:217
+#: stock/models.py:1766 templates/js/table_filters.js:222
msgid "Test result"
msgstr ""
-#: stock/models.py:1752
+#: stock/models.py:1772
msgid "Test output value"
msgstr ""
-#: stock/models.py:1759
+#: stock/models.py:1779
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1785
msgid "Test notes"
msgstr ""
@@ -5850,6 +5799,10 @@ msgstr ""
msgid "No stocktake performed"
msgstr ""
+#: stock/templates/stock/item_base.html:499
+msgid "Edit Stock Status"
+msgstr ""
+
#: stock/templates/stock/item_childs.html:12
msgid "Child Stock Items"
msgstr ""
@@ -5909,6 +5862,19 @@ msgstr ""
msgid "Add Test Data"
msgstr ""
+#: stock/templates/stock/item_tests.html:86
+#: stock/templates/stock/item_tests.html:111
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:131
+msgid "Edit Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_tests.html:145
+msgid "Delete Test Result"
+msgstr ""
+
#: stock/templates/stock/location.html:20
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
@@ -5957,7 +5923,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:97 users/models.py:41
+#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -5997,7 +5963,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1196
msgid "Convert Stock Item"
msgstr ""
@@ -6030,8 +5996,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
-#: stock/views.py:1830
+#: stock/views.py:230 stock/views.py:1175 stock/views.py:1297
+#: stock/views.py:1662
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -6039,208 +6005,188 @@ msgstr ""
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:265
-msgid "Add Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:311
-msgid "Edit Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:327
-msgid "Delete Stock Item Attachment"
-msgstr ""
-
-#: stock/views.py:343
+#: stock/views.py:264
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:273
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:297
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:385
+#: stock/views.py:306
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:396
+#: stock/views.py:317
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:407
+#: stock/views.py:328
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:345
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:444
-msgid "Add Test Result"
-msgstr ""
-
-#: stock/views.py:484
-msgid "Edit Test Result"
-msgstr ""
-
-#: stock/views.py:501
-msgid "Delete Test Result"
-msgstr ""
-
-#: stock/views.py:509
+#: stock/views.py:362
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:630
+#: stock/views.py:483
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:656
+#: stock/views.py:509
msgid "Install Stock Item"
msgstr ""
-#: stock/views.py:755
+#: stock/views.py:608
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:863
+#: stock/views.py:716
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:888
+#: stock/views.py:741
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:998
+#: stock/views.py:851
msgid "Move"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:999
+#: stock/views.py:852
msgid "Count"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:1000
+#: stock/views.py:853
msgid "Take"
msgstr ""
-#: stock/views.py:1001
+#: stock/views.py:854
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:187
+#: stock/views.py:854 users/models.py:188
msgid "Add"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:855
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:1031
+#: stock/views.py:884
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:1036
+#: stock/views.py:889
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:1043
+#: stock/views.py:896
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:1107
+#: stock/views.py:960
msgid "No action performed"
msgstr ""
-#: stock/views.py:1122
+#: stock/views.py:975
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:1137
+#: stock/views.py:990
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:1150
+#: stock/views.py:1003
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:1190
+#: stock/views.py:1043
msgid "No items were moved"
msgstr ""
-#: stock/views.py:1193
+#: stock/views.py:1046
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:1212
+#: stock/views.py:1065
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1222
-msgid "Edit Stock Item Status"
-msgstr ""
-
-#: stock/views.py:1245
+#: stock/views.py:1077
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1482
+#: stock/views.py:1314
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1575 templates/js/build.js:327
+#: stock/views.py:1407 templates/js/build.js:327
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1717
+#: stock/views.py:1549
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1799
+#: stock/views.py:1631
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1899
+#: stock/views.py:1731
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1912
+#: stock/views.py:1744
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1923
+#: stock/views.py:1755
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1930
+#: stock/views.py:1762
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1939
+#: stock/views.py:1771
msgid "Add Stock Tracking Entry"
msgstr ""
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
msgstr ""
@@ -6269,35 +6215,39 @@ msgstr ""
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:145
-msgid "Expired Stock"
+#: templates/InvenTree/index.html:131
+msgid "Depleted Stock"
msgstr ""
#: templates/InvenTree/index.html:146
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:147
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:192
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:185
+#: templates/InvenTree/index.html:193
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:214
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:207
+#: templates/InvenTree/index.html:215
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:237
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:230
+#: templates/InvenTree/index.html:238
msgid "Overdue Sales Orders"
msgstr ""
@@ -6582,24 +6532,12 @@ msgstr ""
msgid "copy version information"
msgstr ""
-#: templates/about.html:100 templates/js/modals.js:568
-#: templates/js/modals.js:861 templates/modals.html:29 templates/modals.html:54
-#: templates/modals.html:97
+#: templates/about.html:100 templates/js/modals.js:34
+#: templates/js/modals.js:677 templates/js/modals.js:970
+#: templates/modals.html:29 templates/modals.html:54 templates/modals.html:97
msgid "Close"
msgstr ""
-#: templates/attachment_table.html:6
-msgid "Add Attachment"
-msgstr ""
-
-#: templates/attachment_table.html:17
-msgid "Uploaded"
-msgstr ""
-
-#: templates/attachment_table.html:35
-msgid "Delete attachment"
-msgstr ""
-
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6616,6 +6554,22 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
+#: templates/js/attachment.js:16
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/attachment.js:56
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/attachment.js:69
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/attachment.js:76
+msgid "Delete attachment"
+msgstr ""
+
#: templates/js/barcode.js:8
msgid "Scan barcode data here using wedge scanner"
msgstr ""
@@ -6644,7 +6598,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:921
+#: templates/js/barcode.js:119 templates/js/modals.js:1030
msgid "Invalid server response"
msgstr ""
@@ -6744,7 +6698,7 @@ msgstr ""
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:372
+#: templates/js/bom.js:372 templates/js/bom.js:519
msgid "Delete BOM Item"
msgstr ""
@@ -6772,7 +6726,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/build.js:222 templates/js/order.js:382
+#: templates/js/build.js:222 templates/js/order.js:449
msgid "Location not specified"
msgstr ""
@@ -6798,7 +6752,7 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/build.js:806 templates/js/part.js:390 templates/js/part.js:635
-#: templates/js/stock.js:514 templates/js/stock.js:966
+#: templates/js/stock.js:514 templates/js/stock.js:980
msgid "Select"
msgstr ""
@@ -6810,45 +6764,69 @@ msgstr ""
msgid "No parts allocated for"
msgstr ""
-#: templates/js/company.js:74
+#: templates/js/company.js:45
+msgid "Edit Company"
+msgstr ""
+
+#: templates/js/company.js:66
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/company.js:143
msgid "Parts Supplied"
msgstr ""
-#: templates/js/company.js:83
+#: templates/js/company.js:152
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/company.js:96
+#: templates/js/company.js:165
msgid "No company information found"
msgstr ""
-#: templates/js/company.js:129
+#: templates/js/company.js:183
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/company.js:200
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/company.js:253
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/company.js:148 templates/js/company.js:347
+#: templates/js/company.js:272 templates/js/company.js:472
#: templates/js/part.js:68 templates/js/part.js:153
msgid "Template part"
msgstr ""
-#: templates/js/company.js:152 templates/js/company.js:351
+#: templates/js/company.js:276 templates/js/company.js:476
#: templates/js/part.js:72 templates/js/part.js:157
msgid "Assembled part"
msgstr ""
-#: templates/js/company.js:226
+#: templates/js/company.js:350
msgid "No parameters found"
msgstr ""
-#: templates/js/company.js:262
+#: templates/js/company.js:386
msgid "Edit parameter"
msgstr ""
-#: templates/js/company.js:263
+#: templates/js/company.js:387
msgid "Delete parameter"
msgstr ""
-#: templates/js/company.js:328
+#: templates/js/company.js:406
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/company.js:417
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/company.js:453
msgid "No supplier parts found"
msgstr ""
@@ -6876,6 +6854,83 @@ msgstr ""
msgid "Create filter"
msgstr ""
+#: templates/js/forms.js:278 templates/js/forms.js:291
+#: templates/js/forms.js:303 templates/js/forms.js:315
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/forms.js:279
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:292
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:304
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:316
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/forms.js:583 templates/js/modals.js:1040
+msgid "No Response"
+msgstr ""
+
+#: templates/js/forms.js:584 templates/js/modals.js:1041
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/forms.js:590 templates/js/modals.js:1050
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/forms.js:591 templates/js/modals.js:1051
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/forms.js:597 templates/js/modals.js:1055
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/forms.js:598 templates/js/modals.js:1056
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/forms.js:604 templates/js/modals.js:1060
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/forms.js:605 templates/js/modals.js:1061
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/forms.js:611 templates/js/modals.js:1065
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/forms.js:612 templates/js/modals.js:1066
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/forms.js:618 templates/js/modals.js:1069
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/forms.js:788 templates/modals.html:21 templates/modals.html:47
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/forms.js:1161
+msgid "Searching"
+msgstr ""
+
+#: templates/js/forms.js:1301
+msgid "Clear input"
+msgstr ""
+
#: templates/js/label.js:10 templates/js/report.js:98
msgid "Select Stock Items"
msgstr ""
@@ -6916,112 +6971,102 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:265
-msgid "Waiting for server..."
-msgstr ""
-
-#: templates/js/modals.js:424
-msgid "Show Error Information"
-msgstr ""
-
-#: templates/js/modals.js:491 templates/modals.html:76
-msgid "Accept"
-msgstr ""
-
-#: templates/js/modals.js:492 templates/modals.html:75
+#: templates/js/modals.js:59 templates/js/modals.js:105
+#: templates/js/modals.js:601 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:556
-msgid "Loading Data"
-msgstr ""
-
-#: templates/js/modals.js:567 templates/js/modals.js:860
+#: templates/js/modals.js:60 templates/js/modals.js:104
+#: templates/js/modals.js:676 templates/js/modals.js:969
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:103
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/modals.js:374
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/modals.js:533
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/modals.js:600 templates/modals.html:76
+msgid "Accept"
+msgstr ""
+
+#: templates/js/modals.js:665
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/modals.js:920
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:811
+#: templates/js/modals.js:920
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:824
+#: templates/js/modals.js:933
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:921
+#: templates/js/modals.js:1030
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:931
-msgid "No Response"
-msgstr ""
-
-#: templates/js/modals.js:932
-msgid "No response from the InvenTree server"
-msgstr ""
-
-#: templates/js/modals.js:936
+#: templates/js/modals.js:1045
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:937
+#: templates/js/modals.js:1046
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:941
-msgid "Error 401: Not Authenticated"
+#: templates/js/model_renderers.js:21
+msgid "Company ID"
msgstr ""
-#: templates/js/modals.js:942
-msgid "Authentication credentials not supplied"
+#: templates/js/model_renderers.js:63
+msgid "Location ID"
msgstr ""
-#: templates/js/modals.js:946
-msgid "Error 403: Permission Denied"
+#: templates/js/model_renderers.js:90
+msgid "Part ID"
msgstr ""
-#: templates/js/modals.js:947
-msgid "You do not have the required permissions to access this function"
+#: templates/js/model_renderers.js:126
+msgid "Category ID"
msgstr ""
-#: templates/js/modals.js:951
-msgid "Error 404: Resource Not Found"
+#: templates/js/model_renderers.js:150
+msgid "Supplier Part ID"
msgstr ""
-#: templates/js/modals.js:952
-msgid "The requested resource could not be located on the server"
+#: templates/js/order.js:31
+msgid "Create Sales Order"
msgstr ""
-#: templates/js/modals.js:956
-msgid "Error 408: Timeout"
-msgstr ""
-
-#: templates/js/modals.js:957
-msgid "Connection timeout while requesting data from server"
-msgstr ""
-
-#: templates/js/modals.js:960
-msgid "Error requesting form data"
-msgstr ""
-
-#: templates/js/order.js:138
+#: templates/js/order.js:200
msgid "No purchase orders found"
msgstr ""
-#: templates/js/order.js:162 templates/js/order.js:257
+#: templates/js/order.js:224 templates/js/order.js:319
msgid "Order is overdue"
msgstr ""
-#: templates/js/order.js:234
+#: templates/js/order.js:296
msgid "No sales orders found"
msgstr ""
-#: templates/js/order.js:343
+#: templates/js/order.js:333
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/order.js:410
msgid "No sales order allocations found"
msgstr ""
@@ -7061,11 +7106,11 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:476 templates/js/table_filters.js:323
+#: templates/js/part.js:476 templates/js/table_filters.js:328
msgid "Low stock"
msgstr ""
-#: templates/js/part.js:660 templates/js/stock.js:990
+#: templates/js/part.js:660 templates/js/stock.js:1004
msgid "Path"
msgstr ""
@@ -7085,7 +7130,22 @@ msgstr ""
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/part.js:806
+#: templates/js/part.js:786
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/part.js:839
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:840
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/part.js:959
msgid "Single Price Difference"
msgstr ""
@@ -7263,75 +7323,75 @@ msgstr ""
msgid "Stocktake"
msgstr ""
-#: templates/js/stock.js:853
+#: templates/js/stock.js:867
msgid "Stock Status"
msgstr ""
-#: templates/js/stock.js:868
+#: templates/js/stock.js:882
msgid "Set Stock Status"
msgstr ""
-#: templates/js/stock.js:882
+#: templates/js/stock.js:896
msgid "Select Status Code"
msgstr ""
-#: templates/js/stock.js:883
+#: templates/js/stock.js:897
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1022
+#: templates/js/stock.js:1036
msgid "Invalid date"
msgstr ""
-#: templates/js/stock.js:1069
+#: templates/js/stock.js:1083
msgid "Location no longer exists"
msgstr ""
-#: templates/js/stock.js:1088
+#: templates/js/stock.js:1102
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/stock.js:1107
+#: templates/js/stock.js:1121
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/stock.js:1125
+#: templates/js/stock.js:1139
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/stock.js:1148
+#: templates/js/stock.js:1162
msgid "Added"
msgstr ""
-#: templates/js/stock.js:1156
+#: templates/js/stock.js:1170
msgid "Removed"
msgstr ""
-#: templates/js/stock.js:1188
+#: templates/js/stock.js:1202
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1200
+#: templates/js/stock.js:1214
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1201
+#: templates/js/stock.js:1215
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1325
+#: templates/js/stock.js:1339
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1366
+#: templates/js/stock.js:1380
msgid "No installed items"
msgstr ""
-#: templates/js/stock.js:1389
+#: templates/js/stock.js:1403
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1417
+#: templates/js/stock.js:1431
msgid "Uninstall Stock Item"
msgstr ""
@@ -7352,7 +7412,7 @@ msgid "Include locations"
msgstr ""
#: templates/js/table_filters.js:86 templates/js/table_filters.js:87
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:305
msgid "Include subcategories"
msgstr ""
@@ -7385,7 +7445,7 @@ msgstr ""
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:290
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:295
msgid "Active parts"
msgstr ""
@@ -7457,43 +7517,51 @@ msgstr ""
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:236
+#: templates/js/table_filters.js:211
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/table_filters.js:212
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/table_filters.js:241
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:260 templates/js/table_filters.js:277
+#: templates/js/table_filters.js:265 templates/js/table_filters.js:282
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:306
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:305
+#: templates/js/table_filters.js:310
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:311
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:311
+#: templates/js/table_filters.js:316
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:319
+#: templates/js/table_filters.js:324
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:335
+#: templates/js/table_filters.js:340
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:347
+#: templates/js/table_filters.js:352
msgid "Purchasable"
msgstr ""
@@ -7550,10 +7618,6 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:47
-msgid "Form errors exist"
-msgstr ""
-
#: templates/navbar.html:13
msgid "Toggle navigation"
msgstr ""
@@ -7570,7 +7634,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:38
+#: templates/navbar.html:77 users/models.py:39
msgid "Admin"
msgstr ""
@@ -7790,35 +7854,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:174
+#: users/models.py:175
msgid "Permission set"
msgstr ""
-#: users/models.py:182
+#: users/models.py:183
msgid "Group"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "View"
msgstr ""
-#: users/models.py:185
+#: users/models.py:186
msgid "Permission to view items"
msgstr ""
-#: users/models.py:187
+#: users/models.py:188
msgid "Permission to add items"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Change"
msgstr ""
-#: users/models.py:189
+#: users/models.py:190
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:191
+#: users/models.py:192
msgid "Permission to delete items"
msgstr ""