diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index ad0e4f2bc3..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-03 06:24+0000\n"
-"PO-Revision-Date: 2021-07-03 06:27\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: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/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: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,48 +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
+#: 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:827 templates/js/part.js:949 templates/js/part.js:1005
-#: templates/js/stock.js:1178 templates/js/stock.js:1397
+#: 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"
@@ -499,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"
@@ -528,11 +536,11 @@ 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/build.js:586 templates/js/order.js:445
#: templates/js/stock.js:643 templates/js/stock.js:1070
msgid "Location"
msgstr "Lagerort"
@@ -542,11 +550,11 @@ 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/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"
@@ -580,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: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
@@ -642,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: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
+#: 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: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/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"
@@ -891,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"
@@ -910,11 +918,11 @@ 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"
@@ -927,6 +935,35 @@ msgstr "Seriennummer"
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"
@@ -1034,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"
@@ -1181,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"
@@ -1285,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"
@@ -1314,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"
@@ -1330,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"
@@ -1427,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:179
-#: 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()}"
@@ -1468,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"
@@ -1501,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"
@@ -1605,8 +1616,8 @@ 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
+#: 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"
@@ -1615,7 +1626,7 @@ 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
+#: 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"
@@ -1624,7 +1635,7 @@ msgstr "Baugruppe"
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:174 part/models.py:825 part/templates/part/detail.html:180
+#: common/models.py:174 part/models.py:834 part/templates/part/detail.html:180
#: templates/js/table_filters.js:336
msgid "Component"
msgstr "Komponente"
@@ -1633,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"
@@ -1641,7 +1652,7 @@ 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
+#: 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"
@@ -1650,7 +1661,7 @@ 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
+#: 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"
@@ -1659,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"
@@ -1856,11 +1867,11 @@ 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
+#: common/models.py:749 company/templates/company/supplier_part_pricing.html:84
#: templates/js/part.js:832
msgid "Price"
msgstr "Preis"
@@ -1891,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:762
+#: 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:763
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:622
msgid "Match Fields"
msgstr "Übereinstimmende Felder"
@@ -1925,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:940
+#: 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
+#: 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
@@ -2196,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"
@@ -2210,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"
@@ -2218,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"
@@ -2232,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"
@@ -2256,10 +2269,10 @@ 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
+#: 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"
@@ -2281,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
@@ -2303,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: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"
@@ -2345,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:1332
+#: 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"
@@ -2399,18 +2410,17 @@ 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
+#: 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"
@@ -2423,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
@@ -2449,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"
@@ -2469,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"
@@ -2491,7 +2519,7 @@ msgstr "Zuliefererteile"
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:1010
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Teilbestand"
@@ -2505,7 +2533,7 @@ msgstr "Teilbestand"
#: 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,7 +2545,7 @@ msgstr "Aufträge"
#: 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"
@@ -2546,8 +2574,8 @@ 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"
@@ -2597,8 +2625,9 @@ msgstr "Teil bestellen"
msgid "Pricing Information"
msgstr "Preisinformationen ansehen"
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:855
-#: part/templates/part/prices.html:264 part/views.py:2951
+#: 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"
@@ -2606,443 +2635,387 @@ msgstr "Preisstaffel hinzufügen"
msgid "No price break information found"
msgstr "Keine Informationen zur Preisstaffel gefunden"
-#: company/templates/company/supplier_part_pricing.html:89
+#: 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
+#: 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
+#: 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:1148
+#: company/views.py:161 part/views.py:1007
msgid "Download Image"
msgstr "Bild herunterladen"
-#: company/views.py:198 part/views.py:1180
+#: 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:1187
+#: 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:1196
+#: 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:1333
+#: 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:2955
-msgid "Added new price break"
-msgstr "neue Preisstaffel hinzufügt"
-
-#: company/views.py:916 part/views.py:2999
-msgid "Edit Price Break"
-msgstr "Preisstaffel bearbeiten"
-
-#: company/views.py:931 part/views.py:3013
-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:1886 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
+#: 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 part/templates/part/prices.html:166 stock/models.py:537
+#: 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/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
@@ -3087,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
+#: 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"
@@ -3249,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"
@@ -3273,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?"
@@ -3291,41 +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 templates/js/part.js:807
+#: 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"
@@ -3340,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
@@ -3348,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"
@@ -3390,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
@@ -3409,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"
@@ -3512,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"
@@ -3721,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"
@@ -3873,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: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
+#: 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:1892 part/views.py:1944
-#: 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?"
@@ -4244,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"
@@ -4300,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:2187
+#: part/templates/part/bom.html:61 part/views.py:2031
msgid "Export Bill of Materials"
msgstr "Stückliste exportieren"
@@ -4316,7 +4261,7 @@ 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:591
+#: part/templates/part/bom.html:160 part/views.py:450
#: templates/js/stock.js:1327
msgid "Create New Part"
msgstr "Neues Teil anlegen"
@@ -4398,7 +4343,7 @@ msgstr "Neuen Bauauftrag beginnen"
msgid "All parts"
msgstr "Alle Teile"
-#: part/templates/part/category.html:38 part/views.py:2597
+#: part/templates/part/category.html:38 part/views.py:2441
msgid "Create new part category"
msgstr "Teil-Kategorie anlegen"
@@ -4463,6 +4408,7 @@ 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"
@@ -4474,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"
@@ -4523,7 +4477,7 @@ msgstr ""
msgid "Part Parameters"
msgstr "Teilparameter"
-#: part/templates/part/copy_part.html:9 part/views.py:467
+#: part/templates/part/copy_part.html:9 part/views.py:326
msgid "Duplicate Part"
msgstr "Teil duplizieren"
@@ -4645,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"
@@ -4710,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"
@@ -4795,10 +4749,22 @@ msgstr "Herstellbar"
msgid "Building"
msgstr "Im Bau"
-#: part/templates/part/part_base.html:282 part/templates/part/prices.html:131
+#: 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"
@@ -4851,6 +4817,18 @@ msgstr "Keine Preise für dieses Teil verfügbar"
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"
@@ -4939,7 +4917,7 @@ msgstr "Für dieses Teil sind keine Bestandspreise verfügbar."
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:206 part/views.py:3022
+#: part/templates/part/prices.html:206 part/views.py:2859
msgid "Add Internal Price Break"
msgstr ""
@@ -5042,228 +5020,188 @@ msgstr "neue Variante anlegen"
msgid "Unknown database"
msgstr "Unbekannte Datenbank"
-#: part/views.py:96
+#: part/views.py:95
msgid "Add Related Part"
msgstr "verknüpftes Teil hinzufügen"
-#: part/views.py:151
+#: part/views.py:150
msgid "Delete Related Part"
msgstr "verknüpftes Teil entfernen"
-#: part/views.py:165
-msgid "Add part attachment"
-msgstr "Teilanhang hinzufügen"
-
-#: part/views.py:218 templates/attachment_table.html:32
-msgid "Edit attachment"
-msgstr "Anhang bearbeiten"
-
-#: part/views.py:222
-msgid "Part attachment updated"
-msgstr "Teilanhang aktualisiert"
-
-#: part/views.py:237
-msgid "Delete Part Attachment"
-msgstr "Teilanhang löschen"
-
-#: part/views.py:245
-msgid "Deleted part attachment"
-msgstr "Teilanhang gelöscht"
-
-#: part/views.py:254
-msgid "Create Test Template"
-msgstr "Testvorlage anlegen"
-
-#: part/views.py:281
-msgid "Edit Test Template"
-msgstr "Testvorlage bearbeiten"
-
-#: part/views.py:295
-msgid "Delete Test Template"
-msgstr "Testvorlage löschen"
-
-#: part/views.py:302
+#: part/views.py:161
msgid "Set Part Category"
msgstr "Teil-Kategorie auswählen"
-#: part/views.py:352
+#: part/views.py:211
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Kategorie für {n} Teile setzen"
-#: part/views.py:387
+#: part/views.py:246
msgid "Create Variant"
msgstr "Variante anlegen"
-#: part/views.py:472
+#: part/views.py:331
msgid "Copied part"
msgstr "Teil kopiert"
-#: part/views.py:526 part/views.py:664
+#: 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:596
+#: part/views.py:455
msgid "Created new part"
msgstr "Neues Teil angelegt"
-#: part/views.py:764
+#: part/views.py:623
msgid "Match References"
msgstr ""
-#: part/views.py:1066
+#: part/views.py:925
msgid "None"
msgstr ""
-#: part/views.py:1125
+#: part/views.py:984
msgid "Part QR Code"
msgstr "Teil-QR-Code"
-#: part/views.py:1227
-msgid "Upload Part Image"
-msgstr "Teilbild hochladen"
-
-#: part/views.py:1233 part/views.py:1268
-msgid "Updated part image"
-msgstr "Teilbild aktualisiert"
-
-#: part/views.py:1242
+#: part/views.py:1086
msgid "Select Part Image"
msgstr "Teilbild auswählen"
-#: part/views.py:1271
+#: 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:1282
+#: part/views.py:1126
msgid "Edit Part Properties"
msgstr "Teileigenschaften bearbeiten"
-#: part/views.py:1317
+#: part/views.py:1161
msgid "Duplicate BOM"
msgstr "Stückliste duplizieren"
-#: part/views.py:1347
+#: part/views.py:1191
msgid "Confirm duplication of BOM from parent"
msgstr "bestätige Duplizierung Stückliste von übergeordneter Stückliste"
-#: part/views.py:1368
+#: part/views.py:1212
msgid "Validate BOM"
msgstr "Stückliste überprüfen"
-#: part/views.py:1389
+#: part/views.py:1233
msgid "Confirm that the BOM is valid"
msgstr "Bestätigen, dass Stückliste korrekt ist"
-#: part/views.py:1400
+#: part/views.py:1244
msgid "Validated Bill of Materials"
msgstr "überprüfte Stückliste"
-#: part/views.py:1534
+#: part/views.py:1378
msgid "No BOM file provided"
msgstr "Keine Stückliste angegeben"
-#: part/views.py:1895
+#: part/views.py:1739
msgid "Enter a valid quantity"
msgstr "Bitte eine gültige Anzahl eingeben"
-#: part/views.py:1920 part/views.py:1923
+#: part/views.py:1764 part/views.py:1767
msgid "Select valid part"
msgstr "Bitte ein gültiges Teil auswählen"
-#: part/views.py:1929
+#: part/views.py:1773
msgid "Duplicate part selected"
msgstr "Teil doppelt ausgewählt"
-#: part/views.py:1967
+#: part/views.py:1811
msgid "Select a part"
msgstr "Teil auswählen"
-#: part/views.py:1973
+#: part/views.py:1817
msgid "Selected part creates a circular BOM"
msgstr "gewähltes Teil erzeugt rekursive Stückliste"
-#: part/views.py:1977
+#: part/views.py:1821
msgid "Specify quantity"
msgstr "Anzahl angeben"
-#: part/views.py:2239
+#: part/views.py:2083
msgid "Confirm Part Deletion"
msgstr "Löschen des Teils bestätigen"
-#: part/views.py:2246
+#: part/views.py:2090
msgid "Part was deleted"
msgstr "Teil wurde gelöscht"
-#: part/views.py:2255
+#: part/views.py:2099
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:2396
+#: part/views.py:2240
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:2406
+#: part/views.py:2250
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:2413
+#: part/views.py:2257
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:2421
+#: part/views.py:2265
msgid "Create Part Parameter"
msgstr "Teilparameter anlegen"
-#: part/views.py:2471
+#: part/views.py:2315
msgid "Edit Part Parameter"
msgstr "Teilparameter bearbeiten"
-#: part/views.py:2485
+#: part/views.py:2329
msgid "Delete Part Parameter"
msgstr "Teilparameter löschen"
-#: part/views.py:2545
-msgid "Edit Part Category"
-msgstr "Teil-Kategorie bearbeiten"
-
-#: part/views.py:2583
+#: part/views.py:2427
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:2589
+#: part/views.py:2433
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:2641
+#: part/views.py:2485
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:2742
+#: part/views.py:2586
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:2798
+#: part/views.py:2642
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:2817
+#: part/views.py:2661
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/views.py:2887
+#: part/views.py:2731
msgid "Edit BOM item"
msgstr "Stücklisten-Position bearbeiten"
-#: part/views.py:2943
-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:3031
+#: part/views.py:2868
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:3039
+#: part/views.py:2876
msgid "Delete Internal Price Break"
msgstr ""
@@ -5369,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:1026
+#: templates/js/order.js:257 templates/js/stock.js:1026
msgid "Date"
msgstr "Datum"
@@ -5391,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:222
+#: 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"
@@ -5861,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"
@@ -5920,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."
@@ -5968,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"
@@ -6008,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"
@@ -6041,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)"
@@ -6050,205 +6005,177 @@ 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"
@@ -6608,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"
@@ -6642,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"
@@ -6670,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"
@@ -6770,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"
@@ -6798,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"
@@ -6836,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"
@@ -6902,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"
@@ -6942,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 ""
@@ -7599,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"
@@ -7619,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"
@@ -7839,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"